nginx + PHP5 unter Debian

Die Wahl eines Webservers gestaltet sich oft als schwierig. Oftmals wird der Apache-Webserver genutzt, welcher allerdings große Hardwareanforderungen stellt. Für kleinere bzw schwächere Server eignet sich besonders der „nginx“ Webserver. Ein absolutes Leichtgewicht!
Wie ihr diesen plus PHP5 unter Debian/Ubuntu installieren könnt, werde ich in diesem Tutorial zeigen.

 

 

Zuerst einmal laden wir uns die aktuelle stable-Version von der Website runter.

wget http://nginx.org/download/nginx-0.8.52.tar.gz

und anschließend entpacken mit Hilfe von
tar xfvz nginx-0.8.52.tar.gz

Die Dateien welche im Archiv waren werden nun in das Verzeichnis nginx-0.8.52 entpackt.
Wechseln wir nun in das Verzeichnis indem wir folgenden Befehl eingeben
cd nginx-0.8.52

Anschließend bereiten wir die Installation vor
./configure
Sollte ein Fehler auftreten, dass eine Bibliothek fehlt, dann diese einfach nachinstallieren. Bei mir zum Beispiel kam der Fehler, dass die PCRE Library fehlt.

Die Installation nun mit
make
fortsetzen.
Anschließend noch
make install und alles ist erledigt 😉 nginx wurde nun in /usr/local/nginx installiert.

Jetzt wechseln wir wieder mit Hilfe des „cd“-Befehls in das Verzeichnis /usr/local/nginx/sbin/
cd /usr/local/nginx/sbin
Von hier aus können wir den Server starten
./nginx.

Ruft nun mal euren Server auf und es sollte folgendes kommen 😉
null

Das war der erste Schritt, machen wir uns nun an die Installation von php.
Um php auf nginx zum Laufen zu bekommen benötigen wir FastCGI.
Dazu installieren wir nun erstmal alle wichtigen PHP-Module, damit du später nichts mehr nachinstallieren musst 😉
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Anschließend müssen wir die php.ini bearbeiten
nano /etc/php5/cgi/php.ini
und folgende Zeile am Ende hinzufügen.
cgi.fix_pathinfo = 1

Machen wir uns nun an das Paket spawn-fcgi. Dazu hätten wir nun zwei Möglichkeiten.
Die erste wäre, einfach Lighttpd zu installieren, weil dieser das spawn-fcgi Paket schon hat oder wir kompilieren uns es selber, was ich jetzt tun werde 😉

wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar xfvz spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure
make
make install
Und das wars ;D

Nun starten wir noch den Daemon
spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Das ganze ist natürlich ein bisschen blöd, wenn man das jedes mal beim Start eingeben muss, deswegen tragen wir spawn-fcgi in den Autostart ein.
nano /etc/rc.local
und diese Zeile vor dem exit eintragen:
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Das einzige was wir jetzt noch machen müssen ist die nginx.conf anpassen.
nano /usr/local/nginx/conf/nginx.conf

Die # vor
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

entfernen und diese Zeilen so anpassen, wie ich es gemacht habe.

Anschließend müssen wir nur noch einen restart durchführen.
/usr/local/nginx/sbin/nginx -s reload
Und php funktioniert 😉
Zum Test können wir ja eine test-Datei machen mit folgendem Inhalt.
<?php
phpinfo();
?>

Das Verzeichnis, wo alle Dateien reinkommen, die über das Web erreichbar sein sollen ist /usr/local/nginx/html.

Werbeanzeigen
  1. Hinterlasse einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: