Passwort vergessen?

Benutzername vergessen?

Alles rund um IT, Web und Entwicklung.
Von Nutzern für Nutzer.

Wordpress mit lighttpd und APC auf dem Raspberry Pi



Das Raspberry Pi bietet sich mit seinem geringen Stromverbrauch perfekt als Webserver für Wordpress an. Aufgrund der begrenzten Ressourcen müssen einige Komponenten allerdings anders aufgesetzt und konfiguriert werden.



Performance


Um eine angemessene Performance zu gewährleisten, verwenden wir den schlanken Webserver lighttpd in Verbindung mit dem PHP Cache APC.

Natürlich könnte als Webserver auch Nginx eingesetzt werden. Allerdings kommt es hier zu Problemen mit den .htaccess Dateien.


RAM erhöhen


Da ein Webserver in der Regel keine grafische Oberfläche benötigt, können wir ohne Probleme den Memory Split des Raspberry Pi anpassen. Somit steht mehr Arbeitsspeicher für die Anwendungen bereit.

Hierzu die Datei /boot/config.txt editieren:

gpu_mem=16


Installation


Nun werden die benötigten Komponenten für den Betrieb von Wordpress installiert.

sudo apt-get install lighttpd php5 php5-cgi php-apc php5-mysql mysql-server

Anschließend wird der Autostart der Dienste aktiviert.

sudo update-rc.d mysql defaults
sudo update-rc.d lighttpd defaults



Konfiguration

Die Installation ist damit abgeschlossen. Wenden wir uns der Konfiguration zu.


PHP aktivieren


Um FastCGI in lighttpd zu aktiveren wird der nachfolgende Befehl verwendet.

sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php


Im Folgenden muss noch ein Handler für die PHP Dateien in der /etc/lighttpd/lighttpd.conf angelegt werden. Die Definition kann an das Ende der Datei angehangen werden.

fastcgi.server = ( ".php" => (( 
                    "bin-path" => "/usr/bin/php-cgi",
                    "socket" => "/tmp/php.sock" 
                )))



APC Cache einrichten


Vor der ersten Verwendung müssen noch einige Einstellungen am APC Cache vorgenommen werden. Die Einstellungen finden sich in der Datei /etc/php5/conf.d/20-apc.ini.

extension=apc.so
apc.enabled=1
apc.file_update_protection=2
apc.optimization=0
apc.shm_size=32M
apc.include_once_override=0
apc.shm_segments=1
apc.gc_ttl=7200
apc.ttl=7200
apc.num_files_hint=1024
apc.enable_cli=0



Einstellungen übernehmen


Zur Übernahme der Änderungen den Webserver neustarten.

sudo service lighttpd restart


Datenbank und Benutzer


Aus Sicherheitsgründen erstellen wir einen extra MySQL Benutzer, welcher nur auf die Wordpress Datenbank Zugriff besitzt.

mysql -u root -p

CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
exit;



Wordpress installieren


Im nächsten Schritt kann die eigentliche Wordpress Installation vorgenommen werden. Hierzu in den Document Root des Webserver navigieren.

cd /var/www

Zunächst wird Wordpress Archiv heruntergeladen und entpackt.

wget http://wpde.org/files/2013/09/wordpress_361-de.zip
unzip wordpress_361-de.zip



Berechtigungen


Vor der Konfiguration von Wordpress müssen noch die Berechtigungen angepasst werden.

sudo chown -R www-data:www-data /var/www/wordpress


Konfiguration erstellen


Jetzt kann der Assistent unter der Adresse http://<IP des Raspberry Pi>/wordpress/ aufgerufen werden.



WP Fast Cache


Um die Geschwindigkeit von Wordpress auf dem Raspberry Pi weiter zu steigern, kann man das Wordpress Plugin WP Fast Cache installieren.

Dieses hält alle Seiten als fertig generiertes HTML vor und liefert diese aus. Somit entfällt die Verarbeitung durch PHP fast komplett.


Fazit


Dank dem PHP Cache APC und dem schlanken Webserver Lighttpd läuft Wordpress auf dem Raspberry Pi in einer akzeptablen Geschwindigkeit.

Quellen: Raspberry Pi Logo, Wordpress Logo

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Hinterlasse einen Kommentar

Ich habe die Datenschutzerklärung zur Kenntnis genommen und stimme einer elektronischen Speicherung und Verarbeitung meiner eingegebenen Daten zur Beantwortung der Anfrage zu.

Michael Kostka

14.02.2014 12:11

Hallo Michael,

wenn das Problem nach dem Neustart auftritt wird der Webserver oder die Datenbank vermutlich nicht gestartet.

Wichtig hierzu sind die nachfolgenden Befehle:

sudo update-rc.d mysql defaults
sudo update-rc.d lighttpd defaults

Die Dienste kannst du auch manuell starten:

sudo service mysql start
sudo service lighttpd start

Viele Grüße
Michael

Michael

13.02.2014 08:36

Hallo, habe deine Anleitung exakt so ausgeführt wie beschrieben.

Funktionierte auch super, bis ich den Raspberry heruntergefahren habe.
Danach kann ich leider keine Webseite mehr öffnen.
Über SSH sowie über SFTP kann ich aber auf den Raspberry.

Habe ich etwas übersehen?

Danke Michael

Fetz

20.01.2014 22:22

Vielen Dank!
Werde ich demnächst gleich mal versuchen. Hoffentlich läuft es damit dann annehmbarer Geschwindigkeit.

Viele Grüße

Fetz

Michael Kostka

15.01.2014 20:16

Hallo Fetz,

ähnlich wie bei Nginx müssen die Einträge in der .htaccess in abgeänderter Form in die lighttpd.conf eingefügt werden.

http://rootserverblog.com/2011/07/lighttpd-wordpress-permalinks-und-wp-super-cache/

Alternativ kannst du statt Lighttpd auch Nginx einsetzen. Hierfür gibt es dann automatische Konverter.

Viele Grüße
Michael

Fetz

15.01.2014 19:57

Hallo,

habe gerade alles wie beschrieben befolgt und Wordpress ist soweit auch installiert. Vielen Dank dafür.
Lediglich beim installieren des WP Fast Cache Plugins scheitere ich. Heruntergeladen ist es ordnungsgemäß. Nun klicke ich innerhalb von Wordpress auf das Plugin und bekomme folgende Meldung:

Installation Not Complete

1. Put this code at the very BEGINNING of your .htaccess file!
If your .htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.

Daraufhin folgt etwas Code. Nun ist aber das Problem, dass es mit lighttpd ja leider keine htaccess Datei gibt.

Gibt es für das Problem eine Lösung?