WordPress-Installation auf einem Linux-Server (Linux, Apache, PHP, MySQL)

Heute kommen wir zu einem sehr technischen Artikel. Viele Gründer werden mit solchen Inhalten nie selber etwas am Hut haben, sondern für diese Aufgaben Dienstleister in Anspruch nehmen. Wer Interesse hat, Geld sparen möchte und die Zeit dafür hat, kann aber viele Aspekte seiner Internetpräsenz auch selbst machen.

Um sich seinen eigenen Blog anzulegen gibt es viele Möglichkeiten. Ich unterscheide hier mal zwischen der Selbermachen- und Host-Methode.

Legt man sich seinen Blog bei einem Host (engl. Wirt, Gastgeber) an, ist das einfach, geht relativ schnell und man brauch dafür kaum tiefer gehende Kenntnisse über andere Softwarekomponenten. Dafür hat man aber auch weniger Kontrolle über das Blog und seine Komponenten (was auch ein Vorteil sein kann), eventuell keinen zeitnahen Zugriff bei Problemen und ist an die Voraussetzungen und AGB des Host gebunden.

Macht man es hingegen selber, hat man die volle Kontrolle, aber auch die volle Arbeit und Verantwortung, falls etwas schief geht. Neben dem Ehrgeiz es selber zu machen, war neben der vollen Kontrolle vor allem das Einrichten einer eigenen Subdomain für das Blog ein Argument für mich, das Blog selbst zu hosten.

Für die Host Methode gehe man zu einem der einschlägigen Anbieter (u.a. auch WordPress selbst) oder gebe einfach mal “blog host” in einer beliebigen Suchmaschine ein.

So, nun aber ran an den Speck:

Wichtig: In dem Post Die Absicherung einer WordPress Installation werden unter anderem Anpassungen an der Datenbank vorgenommen. Führt man die dort beschriebenen Anpassungen vor der Installation von WordPress durch, so erspart man sich ein wenig Arbeit.

Voraussetzungen

Dieses Blog läuft auf einem stabilen Debian Linux. Apache und MySQL hatten wir bereits im Einsatz, weswegen sie dann auch für das Blog genutzt wurden und deren Installation und Konfiguration daher hier nicht weiter behandelt wird. Wichtig ist noch, dass die Pakete php5 und libapache2-mod-php5 installiert sind (apt-get install php5 libapache2-mod-php5).

DNS Einträge anpassen

Unser Blog läuft als Subdomain der Domain adysso.de. Damit dies funktioniert muss zuerst einmal ein entsprechender DNS-Eintrag vorhanden sein. In diesem Falle reicht uns ein weiterer CNAME Eintrag.

SubdomainName	      	IN	CNAME	ZielRechnerName

Wenn das Blog eine gewisse Größe erreicht und dadurch die entsprechende Last erzeugt, wäre ein eigener Rechner und damit ein A-Record angebracht.

Jetzt kann der Name blog.adysso.de aufgelöst werden. Änderungen der DNS Einträge propagieren jedoch recht langsam. In Extremfällen kann es bis zu 24h dauern, bis sich eine Änderung rumgesprochen hat. Mit dem Programm nslookup kann man überprüfen, ob und welcher DNS Server schon von dem neuen Namen weiß.

MySQL Datenbank einrichten

WordPress benötigt Zugriff auf eine Datenbank. Schön, dass wir bereits MySQL installiert haben, nehmen wir doch die.
Zuerst bekommt WordPress eine eigene Datenbank und einen eigenen User angelegt. Wer mag, kann jetzt phpMyAdmin benutzen. Ich verbinde mich aber mit mysql -p auf die MySQL-Konsole und mache es händisch. Da ich mich mit SQL immer nur auf einer strictly need-to-know Basis auseinander setze, war ich zuerst ein wenig ratlos. Geholfen haben mir dabei die Artikel WordPress on Debian Linux von Supriyadi Slamet Widodo und MySQL – Datenbank einrichten und User zuweisen von Tom Schimana. Ergebnis sind dann folgende Befehle geworden:

create database NameDerDatenbank;
grant create,insert,delete,update,select,alter on NameDerDatenbank.* to 'UserName'@'localhost';
 
set password for UserName@localhost = password('Passwort');
flush privileges;
quit
  • Für NameDerDatenbank, UserName und Passwort bitte eigene sinnvolle Dinge einsetzen.
  • Statt der Aufzählung der Rechte könnte man auch all privileges schreiben
  • Statt der set password Zeile könnte man auch den grant Befehl um identified by password ‘Passwort’ erweitern. Im Gegensatz zu der identified by Variante legt die set password Funktion das Passwort jedoch verschlüsselt in der Datenbank ab und ist daher vorzuziehen.
  • flush privileges ist meines Kenntnisstandes nach unnötig, kann aber nie schaden *g* (führt zu einem erneuten Einlesen der GRANT-Tabelle)
  • In vielen Anleitungen wird statt NameDerDatenbank.* oft *.* geschrieben. Das ist nicht nur vollkommen unnötig, sondern stellt auch noch ein erhebliches Sicherheitsrisiko dar (zumindest wenn MySQL noch andere Datenbanken verwaltet.

Damit ist die MySQL Datenbank für WordPress ready to go!

Apache einrichten

Jetzt muss Apache für die neue Subdomain eingerichtet werden. Unser Root-Server bedient mehrere Domains, daher benötigen wir einen VirtualHost Eintrag. Unter Debian, mit Apache2, legt man dazu ein File in /etc/apache2/sites-available/ an.

ServerName subdomain.domain.tld
DocumentRoot /pfad/des/blogs/
ErrorLog /pfad/des/blogs/logs/error.log
CustomLog /pfad/des/blogs/logs/access.log combined
 
<Directory /pfad/des/blogs/>
    Options ExecCGI +FollowSymLinks -Indexes -MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
  • Unter ServerName trägt man die URL des Blog ein, auf die Apache reagieren soll.
  • DocumentRoot gibt das Verzeichnis an, in dem die html bzw. in diesem Fall die php-Files liegen.
  • Möchte man, dass Apache für diese Domain extra Logfiles anlegt, so geht das mit den nächsten beiden Zeilen. Ohne die, landen alle Logeinträge in dem Standardlogfile von Apache. Das Schlüsselwort combined gibt die Art des Logfiles an und ist ein wenig ausführlicher als common. Dieses Verzeichnis muss noch per Hand angelegt werden (mkdir).

Die Directory Direktive gibt Apache noch einige Optionen zu der Domain mit.

  • -Indexes verbietet das listen eines Verzeichnisses in dem kein index.html liegt.
  • -MultiViews verbietet die interne Suche nach passendem Inhalten, falls eine URL nicht gefunden wird.
  • Die andern beiden Optionen erklären sich von selbst.

  • AllowOverride All erlaubt die Nutzung von .htaccess Files. Dies ist wichtig, WordPress braucht dies zum Umschreiben von URLs.
  • Mit den Order und Allow Zeilen kann man bei Bedarf gewissen IPs den Zugriff auf die Webseite verbieten.

Ist dieses File erstellt, kann man über apache2ctl configtest überprüfen, ob man Fehler produziert hat. Ist dies nicht der Fall, aktiviert man die neue Site mit dem Befehl a2ensite FileName. Jetzt noch über apache2ctl graceful den Server neu starten und schon ist Apache bereit für die neue Seite.

WordPress installieren

Die Installation von WordPress ist sehr einfach. Zuerst lädt man sich die aktuelle Version herunter. Ich wählte die deutsche 2.7 Version. Diese entpackt man nun in das entsprechende Zielverzeichnis, z.B. mit 7z x latest.zip.

Als nächstes kopieren wir über cp -a wp-config-sample.php wp-config.php das Konfigurationsfile, welches wir danach in einem Editor öffnen.

define('DB_NAME', 'NameDerDatenbank');
define('DB_USER', 'UserName');
define('DB_PASSWORD', 'Passwort');
define('DB_HOST', 'localhost');
 
define('AUTH_KEY', 'kompliziertespasswortEINS');
define('SECURE_AUTH_KEY', 'kompliziertespasswortZWEI');
define('LOGGED_IN_KEY', 'kompliziertespasswortDREI');
define('NONCE_KEY', 'kompliziertespasswortVIER');
  • Die ersten vier Zeilen müssen nun so angepasst werden, dass sie mit den MySQL-Daten von zuvor übereinstimmen.
  • ACHTUNG: Wer sein WordPress Blog absichern möchte und zusätzlichen Arbeitsaufwand vermeiden möchte, der lese jetzt den Artikel zur WordPress Sicherheit.
  • Die key Zeilen auskommentieren und möglichst komplizierte unterschiedliche keys eintragen. Dies ist kein Passwort, das man sich merken muss! Als Vorlage können die keys, die von dem WordPress Key Generator generiert werden, benutzt werden.

Sooo, nun muss man nur noch die (im doppeltem Sinne) ironischer Weise “5 Minuten Installation” benannte Seite von WordPress aufrufen und damit hat man sein eigenes Blog! Wenn man alles genau so wie hier beschrieben gemacht hat, findet man die Seite unter: subdomain.domain.tld/wp-admin/install.php. Im doppelten Sinne ironisch, weil A) auf dieser Seite genau zwei Abfragen kommen und das wars dann (man ist also sehr viel schneller durch) und B) gerne verschwiegen wird, was man alles tun muss, bevor man diese “5 Minuten Installation” überhaupt aufrufen kann (siehe Länge dieses Eintrags).

Nichts desto trotz darf man sich jetzt endlich freuen, sich fürchterlich stolz in die Reihe der Blogbesitzer einreihen und seinen ersten Beitrag schreiben. Gratz!

(Timo Münster)

Share and Enjoy:
  • Facebook
  • Twitter
  • del.icio.us
  • MisterWong.DE
  • Digg
  • DZone
  • LinkedIn
  • MySpace

Verwandte Artikel

Tags: , , , , , , ,

Leave a Reply