Was ist das hier
Kurz und übersichtlich wird hier die Installation des Blogsystems [http://wordpress.org Wordpress] beschrieben. Einige Schritte beziehen sich explizit auf Debian, sind aber leicht auf andere Linux-Distributionen übertragbar.
Vorraussetzungen
Wordpress stellt nur geringe Anforderungen an dein System. Eine Debian Standardinstallation erweitert um apache, php und mysql reicht. Viele Webspaceprovider bringen die notwendige Software schon mit. Schau in die [http://wordpress.org/about/requirements/ detailierten Systemvorraussetzungen].
Wordpress ist in Debian stable noch nicht drin, deswegen musst du vorerst das Paket aus testing benutzen (siehe /etc/apt/sources.list). Um trotzdem alle abhängigen Pakete aus stable zu installieren, solltest du die Datei /etc/apt/apt.conf.d/50default-release mit folgendem Inhalt anlegen:
APT::Default-Release "stable";
Paket-Installation
In Debian-testing installierst du Wordpress mit der extra benötigten Software durch folgenden Befehl:
apt-get install wordpress mysql-server
Die apacheconfig-Frage nach "suexec" kannst du verneinen.
Webserver (Apache2)
Der Webserver braucht kaum weitere Anpassungen, nur den Pfad des zukünftigen wordpress-Verzeichnisses (siehe Apache-Konfiguration DocumentRoot). Evtl. musst du das php Modul noch per Hand aktivieren:
a2enmod php4
Datenbank (MySQL)
Schnell noch eine neue Datenbank anlegen. Die folgenden Schritte lassen sich auch bequem per [http://www.phpmyadmin.net phpmyadmin] bewerkstelligen.
mysqladmin -p -u root password "ganzgeheim" mysql -h localhost -u root -p > create database wpdb; > grant CREATE,INSERT,DELETE,UPDATE,DROP,ALTER,SELECT on wpdb.* to wordpress@localhost IDENTIFIED BY "phreaking_password"; > FLUSH PRIVILEGES; > EXIT;
Die Passworte solltest du in einzelnen mysql-Client-Konfigurationsdateien (z.B.: ~/.my.cnf) speichern:
[mysqladmin] user = root password = phreaking_password
Anschliessend mit chmod 0600 .my.cnf die Rechte der Datei setzen.
Wordpress
Diese [http://codex.wordpress.org/Installing_WordPress Installationsanleitung] beschreibt die "famous 5-minute install" Variante.
Hier die wenigen Anpassungen der 5minute-Variante in grober Übersicht:
cp /usr/share/wordpress/wp-config-sample.php /etc/wordpress/config-localhost.php
- darin die mysql zugangsdaten eintragen
die define('ABSPATH',...)-Zeile entfernen
ln -s config-localhost.php /etc/wordpress/config-PUBLICHOSTNAME.php
Browser auf https://.../wp-admin/install.php steuern und den Anweisungen Folge leisten
Per webfrontend als admin anmelden und den domainnamen von http://bla:443 auf https:// umstellen
bei wp2.0 funktionierte das nur über phpmyadmin -> wp_options -> site_url
- bevor du Permalinks aktivierst, kannst die entsprechende .htaccess Datei für www-data beschreibbar machen, dann erweitert sie wp automatisch
Anpassungen
Einige optionale Änderungen:
- wordpress in deutsch
- de_DE.mo in wp-includes/languages kopiert
- deutsches template installiert
in der /etc/wordpress/config-localhost.php die Sprache setzen
als admin unter options->miscellaneus file upload erlauben
- ldap Authentifizierung
- Kontaktformular von ryanduff.net/projects/wp-contactform/
http://blog.blackdown.de/2005/05/18/securing-wordpress-admin-access-with-ssl/
Entlastung für den wp Server: [http://dev.wp-plugins.org/wiki/WP-Cache wp-cache]
- Dabei werden die dynamischen php Seiten, nur einmal gerendert und anschließend als statisches html aus dem Cache serviert. Das erspart dem Webserver eine Menge unnötiger Rechenarbeit
Upgrades
!Bevor du weitermachst, kann dir ein frisches Backup des weblog umls einige Sorgenfalten ersparen.! Leider entzieht sich Wordpress etwas dem Standard Debian upgrade System. Via apt-get lässt sich die aktuelle WP Version installieren, allerdings gehen dabei eingebrachte Patches verloren. Da wir mehrere WP Instanzen benutzen musst du die WP Quellen kopieren, damit jeder Blog seinen eigenen Code hat.
apt-get update apt-get install wordpress cp /usr/share/wordpress /data/wp-[blog]-[neue_version]
In /data siehst du leicht, wie die einzelnen symbolischen Links angeordnet sind. Das im Netz sichtbare WP ist immer wp-[blog]. Nun reicht es aber nicht, den wp-[blog] Link von wp-[blog]-[alte_version] auf wp-[blog]-[neue_version] umzubiegen! Einige Schritte sind vorher noch notwendig:
- In wp-[blog]-[neue_version] müssen ein paar Verzeichnisse und Dateien ausgetauscht werden. Du befindest dich jetzt in der kopierten, neuen WP Codebasis (also z.B. /data/wp-foo-2.1.0):
- Verlinke wp-config.php nach /data/wordpress/settings.d/[blog_url].php
- Verlinke die .htaccess nach /data/wp-[blog]-custom-data/.htaccess
- Verlinke content/uploads-[blog] nach /data/wp-[blog]-custom-data/content/uploads-[blog]
- Lösche "uploads"
- Verlinke content/advanced-cache.php nach /data/wp-[blog]-custom-data/wp-content/advanced-cache.php
- Verlinke content/themes/wp-[blog] nach /data/wp-[blog]-custom-data/wp-content/themes/wp-[blog]
- Das aktuelle WP default theme sollte drinbleiben, falls was mit dem selbstgebauten theme nicht hinhaut.
- Kopiere die plugins aus /data/wp-[blog]-custom-data/content/plugins/ nach content/plugins/
- Schau vorher ob es von den Plugins neue Versionen gibt. Ist das der Fall kopiere diese nach ..custom-data und in das aktuelle Pluginverzeichnis. Achte darauf, dass einige Plugins gepatched werden müssen, damit sie korrekt laufen. Bei uns ist das bei eventcalendar3 der Fall. Hier hilft nur, die Doku des Plugins weiter (siehe unten).
Achte darauf, dass alle Verz. & Dateien www-data gehören.
- Melde dich als Admin an und deaktivere alle Plugins (du agierst jetzt noch mit der alten WP Codebase). Melde dich wieder ab.
- damit bleibt die neue WP Version nutzbar, auch wenn Plugins dort nicht laufen sollten
- Setze jetzt erst den /data/wp-[blog] Link um! (also von wp-[blog]-[alte_version] auf wp-[blog]-[neue_version]).
Sicherheitshalber starte ich den apache meist neu: apache2ctl graceful
- Steuere nun den Loginbereich des Blogs (/wp-admin) oder direkt /wp-admin/upgrade.php an. In beiden Fällen sollte eine Meldung erscheinen, dass die Datenbank nicht aktuell ist. Hier brauchst du nur zweimal auf weiter klicken und die Tabellen werden aktualisiert.
- Aktiviere die Plugins nacheinander wieder und sieh nach ob alles wie erwartet läuft.
Falls noch was unklar ist, lies die [http://codex.wordpress.org/Upgrading_WordPress offizielle Wordpress Upgrade Anleitung].
Event Calendar
[http://blog.firetree.net/2005/07/18/eventcalendar-30/ EventCalendar] läuft in Wordpress 2.x bislang nur mit einer Änderung in der Datei: wp-includes/classes.php. Dies ist etwas ärgerlich, da hier lästiges patchen per Hand anfällt. Der Patchvorgang ist in der README Datei des Plugins beschrieben und auch im [http://blog.firetree.net/2005/07/18/eventcalendar-30/ EventCalendar Blog].
weitere Hilfe
[http://wordpress.de/ ausführliche deutsche Wordpress Seite]
[http://codex.wordpress.org offizielles englisches Handbuch zu Wordpress]
[http://codex.wordpress.org/Template_Tags Wordpress code API]
Hinweise
Wordpress ist für mehrere autonome Webseiten relativ ungeeignet. Dazu müssten auf dem Server jeweils eigene Instanzen installiert werden. Es gibt aber einige Projekte, die das Problem in Angriff genommen haben. [http://codex.wordpress.org/Installing_Multiple_Blogs WP Multiple Blogs]
- Die Codebasis won Wordpress ist relativ schmutzig. Gerade die Templates sind von php Code durchzogen, was Updates, Sicherheitsmanagement usw. unnötig verkompliziert.