02_ Webserver Lighttpd, PHP, WordPress CMS mit Raspi Pi3

Wenn dein nagelneuer Raspi Pi3 mit dem ›Raspbian Jessie Lite‹ gebootet ist, dann sollte sich das Gerät in einem Netzwerk zeigen und von einem DHCP Server eine IP ziehen. Mit Hilfe des ›Angry IP Scanner‹ kannst Du dein Netz­werk scannen, welche IP das ist.

Nun solltest Du Dich mittels SSH über Terminal auf dem Raspi einloggen, um alles zu kon­fi­gurieren. Klappt nicht? Dann greifen die neuen Sicher­­heits­­richt­­linien (It’s not a bug, it’s a feature!).

1) SSH aktivieren mit GUI

Per default ist nun SSH deaktiviert. Mit einer GUI wie z.B bei: Raspbian OS ›Jessie‹ mit ›PIXEL‹ kann man den Raspi booten, dort ein Terminal öffnen und per
raspi-config
SSH starten. Die Vorgänge siehst Du in den folgenden Screenshots.

2) SSH aktivieren ohne GUI

Ich gehe in diesem Tutorial von einer Installation mit GUI-losen Lite-Image aus. SSH ist nicht mehr per default aktiviert. Der Standard: User ›pi‹ mit Passwort ›raspberry‹ greift nicht. Eine Sicherheitslücke weniger, ein Problem mehr. Raspi herunterfahren. Mini-SD-Card entnehmen, in Adapter hinein und in den PC bringen. Es mounten die installierten Volumes. Terminal starten. Im Verzeichnis /boot eine leere Datei erzeugen mit dem Namen ssh:
sudo touch ssh


Lighttpd statt Nginx als Webserver

Ein interessierter User hat darauf hingewiesen, Lighttpd einzusetzen statt Nginx. Light hört sich für einen Kleinst-PC passend an, sodass es ich es (erfolgreich) ausprobiert habe. Nginx hat übrigens Probleme mit.htaccess-Dateien, die beim Gebrauch von WordPress wichtig sind.

sudo apt-get install lighttpd
sudo service lighttpd start

Den Erfolg der Installation kann man beobachten, wenn man die IP des Raspis in einem Webbrowser ansteuert. Es zeigt sich die Platzhalterseite:
Oder: lighttpd -v.
Default Document root ist /var/www/html
(aus der Konfigdatei: server.document-root = "/var/www/html".

Lighttpd, wichtige Daten

  • Zentrale Konfigurationsdatei: /etc/lighttpd/lighttpd.conf
  • Zusätzliche Konfiguration: /etc/lighttpd/conf-available/
  • Aktivieren/Deaktivieren von Modulen: lighty-enable-mod Modulname bzw. lighty-disable-mod Modulname.
    Konfigurationsdateien werden von /conf-available/ nach /conf-enabled/ verlinkt und somit aktiviert.
  • Standardmodule: mod_access, mod_alias, mod_compress, mod_redirect, mod_expire.
  • Zusätzliche Module: mod_ssl, mod_cgi, mod_auth, mod_status, mod_accesslog.

Installation von PHP5-FPM

sudo apt-get install php5-fpm
Die systemweite php.ini findet man hier /etc/php5/fpm/php.ini.

Konfiguration von Lighttpd und PHP5

Um PHP5 in Lighttpd zu starten, muss die /etc/php5/fpm/php.ini geändert werden. Das Semikolon vor der Zeile cgi.fix_pathinfo=1 entfernen.

cd /etc/lighttpd/conf-available/
sudo cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
sudo nano 15-fastcgi-php.conf

Nun das File modifizieren, am Ende steht nur folgendes drin:
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php5-fpm.sock",
"broken-scriptfilename" => "enable"
))
)

Speichern und Enablen durch:
sudo lighttpd-enable-mod fastcgi
sudo /etc/init.d/lighttpd force-reload
sudo lighttpd-enable-mod fastcgi-php
sudo /etc/init.d/lighttpd force-reload

Turbo an

Installation von XCache (na klar, es gibt auch APC, aber dass hier geht einfacher):
sudo apt-get -y install php5-xcache Dann:
sudo service php5-fpm reload

Zusätzliche PHP-Module

Es hat sich gezeigt, dass WordPress ein paar nötige Module gut gebrauchen kann (z.B. ImageMagic oder GD). Hiermit kann man nachinstallieren (bitte experimentieren oder hier prüfen, was nötig wäre):

sudo apt-get install php5-curl php5-gd php5-idn php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Test von PHP5

Es wird Zeit für eine kleine PHP-Übersicht. Die bekannte PHP-Info Datei wird erzeugt
sudo touch /var/www/html/info.php.
In diese eintragen:
<?php
phpinfo();
?>

Dann Aufruf im Webbrowser:

Warnung: aus Sicherheitsgründen diese Datei besser mit anderen Namen als »info.php« versehen und nach Gebrauch wieder löschen. Es lassen sich (zu) viele Informationen über den Server herausfinden.


Extras

Da waren noch so Kleinigkeiten. Must haves…

Installation von Adminer statt PhpMyAdmin

Adminer.php ist eine schlanke und sehr schnelle Installation in einer einzigen PHP-Datei und ersetzt PhpMyAdmin zur Genüge. In das Webverzeichnis des Raspis gehen und saugen (Genau hinschauen, es gibt diverse Versionen).

cd /var/www/
sudo wget https://github.com/vrana/adminer/releases/download/v4.2.5/adminer-4.2.5-de.php

Adminer dient zur übersichtlichen Administration von Datenbanken. Adminer lässt sich mit CSS stylen. Es finden sich fertige Themes. Installation z.B. mit:

sudo wget https://raw.githubusercontent.com/vrana/adminer/master/designs/pappu687/adminer.css

Installation von Mariadb

apt-get -y install mariadb-server mariadb-client
Passwort setzen:

Einbindung mit PHP5

sudo apt-get install php5-mysql

OpenSSL

Die veraltete OpenSSL-Version auf dem Raspi ist eigentlich anfällig für Heartbleed-Attacken?
openssl version
OpenSSL 1.0.1t 3 May 2016
Obwohl es sich um v.1.0.1 handelt, liegt eine gepatchte Version vor, also alles gut, kein Grund, zum Beispiel das ›jessie repository‹ anzupumpen, um zu updaten. Das kann in Folge Deine gesamte Installation zerschießen!

Interessante Links zu Lighttpd

– Raspberry Pi – Lighttpd Webserver
Vollwertige Serverumgebung aus lighttpd, PHP, MariaDB
Setup Lighttpd
– Raspberry Pi: Webserver einrichten

Alternative Links zu NginX

NginX mit HHVM
HHVM

3 Responses to “02_ Webserver Lighttpd, PHP, WordPress CMS mit Raspi Pi3”

    • Das muss an WordPress liegen 😉 Apropos: morgen ist Tag der Wahrheit, wie schnell ist Lighttpd/MariaDB wirklich? Stay tuned.

      Antworten
      • Tja, mit einer guten Blogsoftware wäre das nicht passiert. 😀

        MariaDB ist ziemlich schnell, PHP 5 hingegen … 😉

        Antworten

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>