WordPress am Raspberry Pi
WordPress ist ein sehr leistungsstarkes und umfangreiches CMS System. Es erfreut sich vor allem über eine große Community, wird gerne für Blogs verwendet, kann aber auch sehr gut für Webseiten verwendet werden. Insgesamt ist WordPress kompakt, schnell und es gibt unzählig viele Themes und Plugins. Manche sind gratis, manche auch kommerziell. Es ist nur logisch, dass man auch irgendwann WordPress am Raspberry Pi ausprobieren will.
WordPress Performance
Am Raspberry Pi sind Webapplikationen, durch den geringen Arbeitsspeicher von 512 MB, den er sich zudem auch noch mit der Grafikkarte teilen muss, immer sehr Performance kritisch. Um also eine maximale Performance zu kommen müssen wir einiges optimieren:
- maximaler RAM
- minimaler Web Server
- PHP Skript Ausführung beschleunigen
maximaler RAM
Der erste Schritt ist, der CPI mehr RAM Speicher zuzuweisen. Das geht entweder über das raspi-config Konfigurationstool oder über eine manuelle Änderung an der /boot/config.txt Datei. Man muss der GPU mindestens 16 MB Speicher zuweisen, es bleiben also 496 MB für unseren Web Server und das Linux System übrig. In der Config.txt einfach folgendes ändern:
gpu_mem=16
Nach einem Neustart ist die Änderung aktiv.
minimaler Web Server
Der nächste Schritt ist die Verwendung eines schlanken und schnellen Web Server, der möglichst wenig RAM Speicher verbraucht. Dafür eignet sich lighttpd. In meinem Artikel über den Lighttpd Web Server zeige ich, wie man ihn am Pi installiert und konfiguriert.
Folgende Schritte sind auszuführen:
sudo apt-get install lighttpd php5 php5-cgi php-apc php5-mysql mysql-server
Danach müssen wir noch festlegen, dass sowohl Web Server als auch MySQL automatisch gestartet wird:
sudo update-rc.d mysql defaults sudo update-rc.d lighttpd defaults
Wir müssen noch die Ausführung von PHP Skripten aktivieren
sudo lighty-enable-mod fastcgi sudo lighty-enable-mod fastcgi-php
ACP
Die Verwendung eines ACP Caches beschleunigt die Ausführung von PHP Skripten indem diese nach dem 1. Ausführen im RAM zwischengespeichert werden. Leider benötigen wir dafür auch wieder zusätzlich RAM Speicher. In einem meiner letzten Artikel beschreibe ich schon den ACP Cache und wie man ihn installiert und konfiguriert. Die Konfigurationsdatei /etc/php5/conf.d/20-apcu.ini sollte man für den Raspberry Pi wie folgt ändern:
extensions=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.num_files_hint=1024 apc.enable_cli=0
Die Änderungen können mit einem Neustart des Web Servers übernommen werden.
sudo service lighttpd restart
WordPress installieren
Nun kommen wir zum letzten Schritt. Die Installation von WordPress. Dazu wechseln wir in das Verzeichnis des Web Servers:
cd /var/www
Installiert werden kann die aktuellste Version von WordPress ganz einfach in der Kommandozeile mit diesem Kommando:
sudo wget http://wordpress.org/latest.zip
Die Installation kann etwas dauern. Ist die Zip Datei heruntergeladen müssen wir sie noch entpacken:
sudo unzip latest.zip
Zuletzt sollten wir noch die korrekten Rechte setzen.
cd /var/www sudo chown -R www-data:www-data wordpress
Datenbank vorbereiten
WordPress benötigt eine Datenbank, wir müssen also über MySQL eine Datenbank anlegen. Das WordPress Installationsskript erstellt dann alle notwenigen Tabellen und Inhalte. Zuerst brauchen wir aber eine Datenbank und einen Benutzer:
mysql -u root -p
Nach erfolgreicher Passworteingabe gelangen wir in einen SQL Editor. Dort geben wir folgendes ein:
create database wordpress; create user 'wp_user'@'localhost' identified by 'irgendeinpasswort'; grant all privileges on wordpress.* to 'wp_user'; flush privileges; exit;
Mit diesen Statements legen wir eine Datenbank und einen Benutzer an und weisen dem Benutzer alle Rechte auf die neue Datenbank ein.
WordPress Installationsskript
Wir sind nun fertig. Im letzten Schritt müssen wir nur noch das WordPress Installationsskript ausführen. Dazu starten wir einen Browser und geben in die Adresszeile ein:
http://192.168.1.4/wordpress/
Die IP Adresse müsst ihr durch die des Raspberry Pi ersetzen oder mit ‚localhost‘, falls ihr direkt am Pi den Browser verwendet. Danach muss man nur noch den Anweisungen des Skripts folgen und die Datenbankverbindung eingeben.
WordPress läuft nun relativ flott. Als letzten Performance Boost können wird WordPress Plugins installieren die den HTML Code cachen. Da gibt es unterschiedlichen WP Super Cache oder WP Fast Cache sind zu empfehlen.
Hallo,
Ich wollte fragen wie man wordpress als lighttpd-homepage verwendet, also nicht:
http://www.testestest.com/wordpress
sondern:
http://www.testestest.com
Einfach die lighttpd.conf zu bearbeiten und als server.document-root den wordpress Ordner zu benutzen geht nicht, die Website wird dann nur als Text ohne Bilder angezeigt.
P.S.: Man muss „php5-gd“ installieren, um Bilder auf der Website bearbeiten zu können.
Ja, dass kannst du in dem du alles aus dem WordPress Ordner ins www Verzeichnis verschiebst, dann noch den WordPress Ordner löschen und du bist fertig.
MfG Niklas
Hi Niklas,
Die Antwort kommt etwas spät 😀
Hab jetzt einen anderen Weg gefunden – wobei man die Dateien im WordPress Ordner lässt und nur die index.php in den www Ordner schiebt und eine Zeile modifiziert.
leider hab ich die genauen Links nicht mehr da, also kann ichs dir schlecht zeigen.
Danke für den Tipp,
PHP5 wird dadurch extremst beschleunigt. Auch wenn man den Apache2 nutzt. Ein DualCore würde dem Raspberry echt nicht schaden…
Gruß,
dann ist für dich wohl der Banana Pi eine Alternative. Dazu werde ich bald einen Artikel online stellen.
Hallo und vielen Dank für diese super Anleitung!
Ich habe die Instruktionen Schritt für Schritt befolgt, die WP Installation funktioniert auch soweit im internen Netz (192.168.x.x).
Leider habe ich folgendes Problem:
wenn ich von „aussen“ über das Internet auf den Webserver zugreifen möchte, bekomme ich im Browser nur ein „Textgerüst“ ohne Bilder und aktive Links angezeigt. Die Links sind nicht „anklickbar“ und auch Buttons wie z.B. der „Los!“ Button eines Suchfeldes lassen sich nicht anklicken.
Habt Ihr einen Tipp wo sich hier der Fehler befindet?
Das liegt vermutlich daran, dass die CSS und JS Dateien nicht verfügbar sind. Das kann daran liegen, dass die eventuell ein / nach der Domain vergessen hast oder dein Webserver kann auf diese Dateien nicht zugreifen. Sieht dir mal den HTML Code der Seite an und versuche die dort hinterlegten Links zu CSS bzw. JS Dateien anzuklicken. Dann müsstest du diese sehen können.
„CMS System“
CMS System = Content-Management-System System klingt irgendwie falsch.
Hey, bei meinem Raspberry 1, ist bei gpu 126 eingetragen. Warum wird der wert auf 16 geändert, weniger ist doch schlechter oder?
das ist der Wert für die GPU. Auf einem Webserver hast du normalerweise wenig, dass du am Bildschirm darstellen musst, 3D Animation schon gar nicht. Da der RAM zwischen CPU und GPU ja geteilt wird, ist es für einen Webserver besser, es steht mehr RAM zur Verfügung.
Hey,
Habe alles soweit durch nur unter http://meineip/wordpress erreiche ich die wordpress seite nicht. 404 – Not Found.
Lighttpd mit http://meineip funktioniert jedoch einwandfrei…?
Wie kann ich dem auf den Grund gehen?
Ich hab das selbe Problem hast du schon eine Lösung dafür gefunden
Hallo,
die Anleitung ist schon etwas älter aber für mich zielführend. Ich werde warscheinlich auch nicht der Letzte sein der hier landet 🙂
Ein paar Anmerkungen hab ich allerdings:
1. (ist etwas klugscheißen,ist mir aber erst bei probierne auf den 2ten Blick aufgefallen) Beim 3ten posting hat der Fehlerteufel zugeschlagen
sudo update-rc.d mysqll defaults -> mysql hat ein l zu viel
2. /etc/php5/conf.d/20-apc.ini mussjetzt (stand 23.02.2016) jetzt in /etc/php5/cgi/conf.d/20-apcu.ini heißen
3. unzip latest.zip darf man das sudo davor nicht vergessen
super danke für die Mühe. Ich habe die Informationen auch im Artikel aktualisiert.
Muss beim Raspberry Pi 2 auch der RAM zugewiesen werden oder hat dieser auch ohne Zuweisung genug?
würde ich schon machen.
Danke für die Rückmeldung!
Habe alles wie in der Anleitung eingerichtet.
Jedoch nun ein massives Problem mit der Zugriffszeit.
Die Seite ladet wenn man über das Internet darauf zugreift extrem lange bis hin zu Abbrüchen beim Laden.
Im Heimnetzwerk läuft alles prima.
Irgendwelche Tipps woran es liegt?
Ich hab deine Anleitung befolg und alles so gemacht wie beschrieben ausßer das mit ACP das hab ich ausgelassen nun hab ich folgendes Problem wenn ich ip meines raspberry eingebe komm ich auf die Platzhalter Seite wenn ich aber ipdesraspberrys/wordpress eingebe kommt nur 404 Nicht gefunden wie kann man das beheben
Danke schon mal
Hi, kannst du mal prüfen ob der WordPress Root auch tatsächlich unter /var/www/wordpress liegt und nicht in einem weiteren Unterverzeichnis? Du könntest auch noch mit einer Date /var/www/info.php mit dem Inhalt