WordPress

Das CMS WordPress benötigt zum Ablegen der Daten und Inhalte eurer erstellten Web-Seiten eine Datenbank. Diese Datenbank wird bereits für die  Konfiguration während der Installation von WordPress benötigt. Also legen wir vor der Installation von WordPress zuerst eine Datenbank für WordPress mit Hilfe des Programms mySQL an.

Anlegen einer Datenbank für WordPress

Das Anlegen der Datenbank kann entweder in der Benutzeroberfläche phpmyadmin oder im Kommandozeilen-Fenster erfolgen. Im folgenden beschreibe ich das Anlegen der Datenbank und des Datenbank-Benutzers für das Kommandozeilen-Fenster mit einer SSH-Verbindung. In der Benutzeroberfläche müsst ihr euch im Wesentlichen durch die Menüs von phpmyadmin arbeiten, um Datenbank und Benutzer anlegen.

Um die Datenbank anzulegen, meldet ihr euch zunächst als Datenbank-Administrator (root) an den Datenbank-Server an.  Im Kommandozeilen-Fenster könnt ihr das mit diesem Befehl tun:

mysql -uroot -pyourPassword

Damit ruft das Tool mysql aufgerufen. Mit dem Parameter -u wird der Name des Datenbank-Administrators und mit dem Parameter -p das Passwort des Datenbank-Administrators übergeben.

Nach erfolgreicher Anmeldung legt ihr eine neue Datenbank für WordPress an:

mysql> create database yourdatabasename;
mysql> commit;

Im Prinzip würde das schon ausreichen. Ihr könntet alle Tabellen, die WordPress benötigt, für den Benutzer root in der Datenbank yourdatabasename während der WordPress-Konfiguration anlegen lassen. Dadurch, dass ihr bei der Installation von WordPress ein Prefix für die Tabellen-Namen angeben könnt, ist es möglich auch mehrere WordPress-Installation für denselben Benutzer (in dem Fall root) in einer gemeinsamen Datenbank anzulegen.

WordPress verlangt bei der Installation den Namen des Datenbank-Servers und einen Benutzer-Namen mit Passwort, für den eine Datenbank vorhanden ist (in unserem Fall wäre das der Benutzer root mit der eben angelegten Datenbank yourdatabasename). Danach geht WordPress her und legt in dieser Datenbank einen Satz Tabellen an, in denen die Daten eurer Web-Seiten und System-Daten von WordPress gespeichert werden. Jede Tabelle erhält das während der WordPress-Installation angegebene Prefix. Im Prinzip schaut dann eine Installation mit zwei WordPress-Installationen so aus:

Eine Datenbank und ein Benutzer

Eine Datenbank und ein Benutzer

Wir wollen jedoch für jede WordPress-Installation eine eigene Datenbank und einen eigenen Datenbank-Benutzer mit seinem eigenen Set an WordPress-Tabellen erstellen. Dadurch ist der Inhalt verschiedener WordPress-Installationen sauber getrennt. Meldet ihr euch als WordPress-Benutzer an die Datenbank an, seht ihr auch nur dessen Tabellen und nicht die der anderen Benutzer. Nur der Datenbank-Administrator (root) sieht alle Datenbanken und Benutzer.

Mehrere Datenbanken und mehrere Benutzer

Mehrere Datenbanken und mehrere Benutzer

Also legen wir einen neuen Datenbank-Benutzer für die WordPress-Installation in der gerade erzeugten Datenbank an. Das anlegen weiterer Datenbanken und Benutzer für weitere WordPress-Installationen verläuft dann analog. Zunächst meldet ihr euch wieder als Administrator root an:

mysql -uroot -pyourPassword

Danach legt ihr einen Benutzer für die eben erzeugte Datenbank an:

mysql> create user 'yourusername' identified by 'youruserpassword';
mysql> grant all privileges on yourdatabasename.* to 'yourusername';
mysql> flush privileges;
mysql> commit;
mysql> exit;

Beim mysql-Befehl create gebt ihr mit dem Parameter user den Namen und mit dem Parameter identified by das Password eures Datenbank-Benutzers an. Mit dem mysql-Befehl grant, bekommt der neue Benutzer alle benötigten Rechte zum Zugriff auf die WordPress-Tabellen der Datenbank.

Nun könnt ihr euch z.B. mit phpMyAdmin und dem neuen Benutzer-Namen sowie Passwort anmelden. Der angemeldete Benutzer hat nur Zugriff auf die eigene Datenbank (aktuell noch ohne Tabellen, die dann später durch WordPress angelegt werden).

Angemeldet als mySQL-Benutzer

mySQL-Benutzer

Meldet ihr euch als Benutzer root unter phpmyadmin an, habt ihr wieder Zugriff auf alle Datenbanken, Benutzer und Tabellen.

Installation von WordPress

Nun könntet ihr Wordpress herunterladen und direkt im Dokument-Root-Verzeichnis (/var/www/html) installieren. Plant ihr aber mehrere Domains mit unterschiedlichen WordPress-Installationen, ist es besser, für jede WordPress-Installation ein eigenes Verzeichnis anzulegen:

cd /var/www/html
sudo mkdir yourwordpress

Mit dem Unix-Befehl mkdir legt ihr das neue Verzeichnis für WordPress an.

Danach könnt ihr in das Verzeichnis mit dem Unix-Befehl cd wechseln:

cd yourwordpress

Jetzt könnt ihr die neuesten Versionen von WordPress herunterladen:

Die passende Version könnt ihr euch mit dem Befehl wget herunterladen:

sudo wget https://de.wordpress.org/latest-de_DE.tar.gz

Dann könnt ihr das Paket mit dem Tool tar entpacken:

sudo tar xzf latest-de_DE.tar.gz

Das WordPress-Paket wurde beim Entpacken in das Verzeichnis yourwordpress/wordpress entpackt Damit das WordPress-Paket direkt in eurem Verzeichnis mywordpress liegt, verschiebt ihr das entpackte Paket mit dem Unix-Befehl mv aus dem Verzeichnis wordpress in das Verzeichnis, in dem ihr euch gerade befindet:

sudo mv wordpress/* .

Den Inhalt eures WordPress-Verzeichnis, könnt ihr euch mit dem Unix-Befehl ls anzeigen lassen:

ls -al

Euer WordPress-Verzeichnis sollte nun ungefähr so aussehen:

drwxr-xr-x  6 root     root        4096 Mai 30 14:01 .
drwxr-xr-x  5 www-data www-data    4096 Mai 30 13:54 ..
-rw-r--r--  1     1001     1001     418 Sep 25  2013 index.php
-rw-r--r--  1 root     root     8206746 Mai 19 14:40 latest-de_DE.tar.gz
-rw-r--r--  1     1001     1001   19935 Mär  5 21:14 license.txt
-rw-r--r--  1     1001     1001    8663 Mai 19 14:40 liesmich.html
-rw-r--r--  1     1001     1001    7360 Apr 26 22:25 readme.html
drwxr-xr-x  2     1001     1001    4096 Mai 30 14:01 wordpress
-rw-r--r--  1     1001     1001    5032 Jan 28 04:35 wp-activate.php
drwxr-xr-x  9     1001     1001    4096 Mai 19 14:40 wp-admin
-rw-r--r--  1     1001     1001     364 Dez 19 12:20 wp-blog-header.php
-rw-r--r--  1     1001     1001    1476 Jan 30 22:56 wp-comments-post.php
-rw-r--r--  1     1001     1001    3636 Mai 19 14:40 wp-config-sample.php
drwxr-xr-x  5     1001     1001    4096 Mai 19 14:40 wp-content
-rw-r--r--  1     1001     1001    3286 Mai 24  2015 wp-cron.php
drwxr-xr-x 16     1001     1001   12288 Mai 19 14:40 wp-includes
-rw-r--r--  1     1001     1001    2380 Okt 25  2013 wp-links-opml.php
-rw-r--r--  1     1001     1001    3316 Nov  6  2015 wp-load.php
-rw-r--r--  1     1001     1001   33837 Mär  6 04:06 wp-login.php
-rw-r--r--  1     1001     1001    7887 Okt  6  2015 wp-mail.php
-rw-r--r--  1     1001     1001   13106 Feb 17 23:58 wp-settings.php
-rw-r--r--  1     1001     1001   28624 Jan 28 04:51 wp-signup.php
-rw-r--r--  1     1001     1001    4035 Nov 30  2014 wp-trackback.php
-rw-r--r--  1     1001     1001    3061 Okt  3  2015 xmlrpc.php

Das Verzeichnis wordpress ist nun leer und kann gelöscht werden, Das heruntergeladene WordPress-Paket, latest-de_DE.tar.gz, wird ebenfalls nicht mehr benötigt und kann gelöscht werden:

sudo rm -rf wordpress
sudo rm latest-de_DE.tar.gz

Vor der Konfiguration von WordPress, muss der Apache-Webserver-Benutzer Lese- und Schreib-Rechte auf euer WordPress-Verzeichnis /var/www/html/mywordpress und alle darunterliegenden Daten und Verzeichnisse erhalten. Dies ist z.B. notwendig für:

  • Updates durch WordPress
  • Anlegen und Update der Konfigurationsdateien, wie .htaccess oder wp-config.php, durch WordPress
  • Installieren oder löschen von Plugins
  • Installieren oder löschen von Themes
  • Installieren oder löschen von Widgets

Der Gruppen- und auch Benutzer-Name des Apache-Webservers lautet jeweils www-data.

Also setzen wir als Eigentümer des WordPress-Verzeichnis und für alle darunter liegenden Dateien und Verzeichnisse, die Gruppe und den Benutzer www-data des Apache Webservers.

sudo chown -R www-data:www-data .

Wir kontrollieren das mit:

ls -al

Danach sollte das WordPress-Verzeichnis so oder so ähnlich aussehen:

drwxr-xr-x  5 www-data www-data  4096 Mai 30 14:15 .
drwxr-xr-x  5 www-data www-data  4096 Mai 30 13:54 ..
-rw-r--r--  1 www-data www-data   418 Sep 25  2013 index.php
-rw-r--r--  1 www-data www-data 19935 Mär  5 21:14 license.txt
-rw-r--r--  1 www-data www-data  8663 Mai 19 14:40 liesmich.html
-rw-r--r--  1 www-data www-data  7360 Apr 26 22:25 readme.html
-rw-r--r--  1 www-data www-data  5032 Jan 28 04:35 wp-activate.php
drwxr-xr-x  9 www-data www-data  4096 Mai 19 14:40 wp-admin
-rw-r--r--  1 www-data www-data   364 Dez 19 12:20 wp-blog-header.php
-rw-r--r--  1 www-data www-data  1476 Jan 30 22:56 wp-comments-post.php
-rw-r--r--  1 www-data www-data  3636 Mai 19 14:40 wp-config-sample.php
drwxr-xr-x  5 www-data www-data  4096 Mai 19 14:40 wp-content
-rw-r--r--  1 www-data www-data  3286 Mai 24  2015 wp-cron.php
drwxr-xr-x 16 www-data www-data 12288 Mai 19 14:40 wp-includes
-rw-r--r--  1 www-data www-data  2380 Okt 25  2013 wp-links-opml.php
-rw-r--r--  1 www-data www-data  3316 Nov  6  2015 wp-load.php
-rw-r--r--  1 www-data www-data 33837 Mär  6 04:06 wp-login.php
-rw-r--r--  1 www-data www-data  7887 Okt  6  2015 wp-mail.php
-rw-r--r--  1 www-data www-data 13106 Feb 17 23:58 wp-settings.php
-rw-r--r--  1 www-data www-data 28624 Jan 28 04:51 wp-signup.php
-rw-r--r--  1 www-data www-data  4035 Nov 30  2014 wp-trackback.php
-rw-r--r--  1 www-data www-data  3061 Okt  3  2015 xmlrpc.php

Das Verzeichnis (d = directory) wp-content gehört dem Benutzer www-data und der Gruppe www-data. Dieser Benutzer hat Lese- und Schreibzugriff auf das Verzeichnis (rwx), während die Gruppe und alle anderen Benutzer das Verzeichnis nur lesen und Dateien darin ausführen dürfen (r-x und r-x).

Wenn alles passt, kann nun WordPress zum ersten mal im Web-Browser aufgerufen werden.

WordPress konfigurieren

Aufruf von WordPress mit:

http://raspberrypi/yourwordpress

oder mit IP-Adresse:

http://192.168.2.9/yourwordpress

Danach wird die Startseite von WordPress angezeigt, die so oder so ähnlich aussehen sollte:

Wordpress Startseite

WordPress Startseite

Zum Konfigurieren von WordPress benötigt ihr die im Startfenster angezeigten Daten:

  • Name der Datenbank (yourdatabasename)
  • Benutzername der Datenbank (yourusername)
  • Passwort für den Datenbank-Benutzer (youruserpassword)
  • Datenbankserver (hier localhost)
  • Frei wählbares Prefix für die Tabellen-Namen von WordPress

Im nächsten Fenster könnt ihr diese Daten  eingegeben:

Wordpress-Datenbank-Verbindung

WordPress-Datenbank-Verbindung

Klappt die Verbindung zur Datenbank meldet es Wordpress mit einer Erfolgsmeldung.

Wordpress Datenbank Erfolgsmeldung

WordPress Datenbank Erfolgsmeldung

Mit einem Klick auf den Button Installation ausführen legt WordPress alle benötigten Tabellen in der Datenbank an und die restliche Konfiguration wird durchgeführt.

Geht alles gut erscheint die Willkommens-Seite von WordPress. Hier müsst ihr nur noch folgende Daten eingegeben:

  • Name eurer Webseite
  • Benutzername und Passwort für den WordPress-Administrator
  • Eure E-Mail-Adresse
Administrator-Daten für WordPress

Administrator-Daten

Geht auch hier alles gut meldet sich WordPress wieder mit einer Erfolgsmeldung.

Danach könnt ihr euch als Administrator an WordPress anmelden. Nach erfolgreicher Anmeldung landet ihr im sogenannten Dashboard von WordPress und könnt loslegen.

Dashboard von WordPress

Dashboard von WordPress

Um zu prüfen, ob WordPress funktioniert und die Schreibrechte für eure WordPress-Verzeichnis korrekt sind, solltet ihr folgende Tests durchführen:

  • Updates durchführen
  • Plugin installieren
  • Theme installieren
  • Medien (Bilder, …) hochladen

Sollte WordPress beim Hochladen von Medien oder Beim installieren von Updates nach einem FTP-Server fragen, fehlen möglicherweise Schreibrechte für den Apache-User www-data für euer WordPress-Verzeichnis.

Oder es fehlt eventuell ein Eintrag in der WordPress-Konfigurations-Datei wp-config.php:

define('FS_METHOD','direct');

Bitte achtet bei der Eingabe darauf, dass ihr die einfachen Anführungszeichen verwendet. Bei einem fehlerhaften Eintrag in der Konfiguration-Datei kann es passieren, dass sich die Admin-Oberfläche von WordPress nicht mehr aufrufen lässt.

Friendly Links

Um leichter lesbare Links, sogenannte Friendly-Links a la http://meinedomain/mysite zu aktivieren, wählt ihr im Dashboard von WordPress unter Einstellungen -> Permalink die Option Beitragsname aus.

Friendly Links konfigurieren

Friendly Links

Die aktuelle Version von WordPress (bei mir war es die Version 4.5.2) sollte bereits eine Datei mit dem Namen .htaccess in eurem WordPress-Verzeichnis angelegt haben. Dort solltet ihr dies Zeilen zu finden:

RewriteEngine On
RewriteBase /yourwordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /yourwordpress/index.php [L]

Zusätzlich muss der Virtuell-Host vom Apache-Server entsprechend für die Friendly Links konfiguriert werden.
Dazu aktiviert ihr das Modul für Friendly-Links für den Apache-Server mit:

sudo a2enmod rewrite

Zusätzlich müssen folgende Zeilen in die Datei 000-default.conf im Verzeichnis /etc/apache2/sites-enabled eingefügt werden:

    ...
    DocumentRoot /var/www/html
    <Directory /var/www/html>
      Options -Indexes +FollowSymlinks +Multiviews
      AllowOverride All
      Require all granted
    </Directory>
        
    ...

Dazu die Datei mit dem Editor aufrufen und die Zeilen mit Copy und Paste einfügen, falls sie noch nicht vorhanden sind:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Mit CTRL-O und ENTER speichern und mit CTRL-X den Editor verlassen. Die Option -Indexes verhindert zusätzlich das Auflisten eines Verzeichnis im Web-Browser.

Danach müsst ihr den Apache-Server einmal neu durchstarten:

sudo service apache2 restart

Jetzt sollte WordPress voll funktionsfähig sein und ihr könnt mit dem Erstellen euerer Webseite starten. Auf der nächsten Seite findet ihr noch ein paar Tipps und Tricks für den Backup und den Umzug eurer Webseiten zu eurem Internet-Provider.