Alltägliches von und mit dem freien Betriebssystem…
Zwecks Theme- und Pluginentwicklung habe ich gerne eine halbwegs aktuelle Kopie von cywhale.de auf einem lokalen LAMP-System laufen.
Nachdem ich in dieser Richtung längere Zeit inaktiv war kam jetzt der Zeitpunkt zu dem ich dieses Entwicklungssystem mit WordPress, Apache2, MySQL und PHP unter Ubuntu Karmic einrichten wollte – dieser Artikel ist eine Art “Verlaufsbericht” der erfolgreichen Aktion. Für Verbesserungsvorschläge habe ich gerne ein offenes Ohr :)
Mit den folgenden Befehlen werden Apache2-Sever, MySQL, PHP und PHPMyAdmin zwecks grafischer Datenbankbearbeitung installiert. Während der Installation werden als Benutzerintervention die Datenbankzugangsdaten und die genutze Serversoftware (Apache2) abgefragt, man sollte also nicht unbedingt in der Zwischenzeit einkaufen gehen…
$ sudo apt-get install lamp-server^ $ sudo apt-get install libapache2-mod-auth-mysql phpmyadmin
Das “^” steht hier für Tasksel-Pakete, d.h. eine Sammlung von Paketen die einem bestimmten Zweck zugeordnet sind.
Jetzt sollte der Server unter der URL “http://localhost” bereits erreichbar sein und dort eine minimale Infoseite anzeigen.
Standardmässig wird als lokales Hauptverzeichnis für den Server das Verzeichnis “/var/www” genutzt (dort liegt auch die o.g. Infoseite als “index.html”). Da ich meine WordPress-Entwicklungsumgebung gerne in $HOME-Verzeichnis habe wird dort das Verzeichnis “public_html” (der Name ist in der Serverkonfiguration vordefiniert) angelegt:
$ mkdir ~/public_html
Um das gerade angelegte Verzeichnis für den Server nutzbar zu machen muss das entsprechende Modul “userdir” aktiviert werden (“a2enmod” sorgt einfach und schnell für das Anlegen der entsprechenden Symlinks), für die spätere Nutzung von Wordpress-Permalinks gilt gleiches für das Modul “rewrite”, danach muss Apache2 neu gestartet werden:
$ sudo a2enmod rewrite $ sudo a2enmod userdir $ sudo /etc/init.d/apache2 restart
Meine WordPress-Datenbank ist über die Jahre so gross geworden dass die PHP-interne Uploadbeschränkung von 2Mb pro Datei einen Import der Tabellen verhindern würde. Die Uploadbeschränkung wird lokal ggf. in der Datei “php.ini” von 2Mb auf einen günstigeren Wert geändert:
$ sudo gedit /etc/php5/apache2/php.ini
Ab (hier zumindest) Zeile 569:
; Maximum allowed size for uploaded files. upload_max_filesize = 2M
$ sudo /etc/init.d/apache2 restart
Das Rewrite-Modul wurde ja bereits aktiviert, damit es auch arbeiten kann muss noch eine Zeile in der Datei “userdir.conf” geändert werden:
$ sudo gedit /etc/apache2/mods-enabled/userdir.conf
Ab (hier zumindest) Zeile 8 (die mit der Raute auskommentierte Zeile ist das Original):
#AllowOverride FileInfo AuthConfig Limit Indexes AllowOverride All
$ sudo /etc/init.d/apache2 restart
Um die Daten des Online-Blogsystems zu erhalten muss man ein aktuelles Backup der entsprechenden Datenbank auf den eigenen Rechner bekommen. In meinem Fall war das recht einfach über PHPMyAdmin möglich: Zuerst wird in PHPMyAdmin die Export-Seite aufgerufen, dort die von WP genutzte Datenbank ausgewählt, als Exportvariante hatte ich hier “Gzip-komprimiert” ausgewählt, bestätigt und den Download abgewartet.
Der Import verläuft jetzt lokal analog zum Export: http://localhost/phpmyadmin im Browser aufrufen, einloggen, die Import-Seite aufrufen, dort im Uploadfeld die eben exportierte Backupdatei auswählen, bestätigen und je nach Datenbankumfang einige Sekunden warten.
In der gerade importierten Datenbank befinden sich unter anderem die WordPress-Optionen. Dort ist an verschiedenen Stellen auch die URL des Blogs hinterlegt. Um WP lokal mit korrekten Seitenadressen zum Laufen zu bekommen musste ich die URLs – die sich ja noch auf die Online-Version bezogen – ändern:
In PHPMyAdmin wählt man die Optionen-Tabelle von WordPress (Name = WordPress-DB-Prefix+”options” )durch Anklicken aus. Auf der erscheinenden Seite zu dieser Tabelle wird der “SQL”-Button zum Öffnen des Fensters für direkte Datenbankmanipulationen angeklickt und der Inhalt des selbigen abgeändert wie folgt (Achtung: Sofern man das Tabellenprefix geändert hat beginnt der Tabellenname statt mit “wp_” natürlich mit einer anderen Zeichenfolge. Möglicherweise kann die folgende Query auch Optionen betreffen die dadurch Probleme machen, sie hat zumindest hier bei meiner Installation aber erfolgreich 6 Werte geändert und funktionsfähig belassen).
Der Befehl ändert die URLs in Feldern die mit “http://die-online-url BEGINNEN (das “%” lässt danach beliebige Zeichenfolgen zu) zur lokalen URL “http://localhost/~name-des-homeverzeichnisses” um:
UPDATE 'wp_options'
SET wp_options.option_value='http://localhost/~name-des-homeverzeichnisses'
WHERE wp_options.option_value
LIKE 'http://die-online-url%'
Sicherheitshalber könnte man vorher erst einmal alle Felder anzeigen lassen die von dieser Änderung betroffen wären:
SELECT * FROM 'wp_options'
WHERE wp_options.option_value
LIKE 'http://die-online-url%'
Das “public_html”-Verzeichnis ist noch leer, Zeit es mit der WordPress-Standardinstallation zu füllen. Das WP-Paket sollte die gleiche Version haben wie die Online-Variante. Eine Downloadmöglichkeit für die deutschsprachige Version wäre z.B. wordpress-deutschland.org.
Alternativ könnte man auch gleich ein komplettes Backup der Onlineversion per FTP herunterladen, in meinem Fall habe ich aber leider (noch) diverse .svn-Verzeichnisse in der Online-Installation was den FTP-Download unglaublich in die Länge gezogen hat.
Um die Zusammenstellung von Themes und Plugins auch offline in der neuen Installation zu Verfügung zu haben wird das Online-Verzeichnis “wp-content” mit allen Unterverzeichnissen per FTP heruntergeladen und im Verzeichnis “$HOME/public_html” abgelegt. Gleiches geschieht mit den Dateien “.htaccess” und “wp-config.php” im Hauptverzeichnis des Onlinesystems.
Innerhalb der Datei “wp-config.php” müssen jetzt nur noch die Angaben der Online-Datenbank zu den Zugangsdaten zur lokalen Datenbank ersetzt werden falls diese abweichen.
Die Permalinkeinstellung hatte hier nicht auf Anhieb funktioniert, die Lösung war 1) im lokalen Wordpress-Adminbereich->Einstellungen->Permalinks die gewünschte Einstellung nochmals zu aktivieren und 2) den dann angezeigten Code als (alleinigen!) Inhalt in der lokalen “.htaccess”-Datei zu plazieren.
http://tuxtweaks.com/…ing-lamp-on-ubuntu-jaunty-904/ http://tuxtweaks.com/…uninstall-lamp-in-ubuntu-9-10-karmic-koala/ http://saabye-pedersen.org/node/52 http://ubuntuguide.net/the-easiest-way-installing-lamp-server-in-ubuntu
Hat dann nicht das lokale WordPress versucht, alles mögliche anzupingen und Trackbacks zu senden??
Dank dir. Rate mal, was ich heute in der Nacht sowieso angehen wollte :), na dann muss ich mir das hoffentlich jetzt nicht im einzelnen zusammens suchen.
[...] rest is here: Lokale WordPress-Kopie und LAMP (Apache/MySQL/PHP) mit Ubuntu Karmic Tags: linux, [...]
[...] aber lästig: Dateien lokal ändern, per FTP hochladen usw…Deswegen kam mir dieser Beitrag von Cywhale auch gerade recht. Er beschreibt da, wie man sich eine lokale Webumgebung (LAMP) unter [...]
[...] Installation von Apache2 und MySQL sowie das Anlegen der WordPress- und Datenbank-Kopie verlief wie hier schon für Ubuntu Karmic beschrieben. Der Versuch die WordPress-Startseite im Localhost aufzurufen führte jetzt aber dazu dass Firefox [...]
Hab ich selbst noch nicht “offline” eingerichtet aber alternativ zum Export mit PhpMyadmin könnte man auch die Exportfunktion (Werkzeuge/Export) im Adminbereich nutzen. Gut: Die Einstellungen werden nicht mit übernommen aber im Falle der Url ist das ja eher ein Vorteil. Nachteil wäre natürlich Mysql DB und Benutzer anlegen usw….