[Tutorial] Saubere Installation von Nginx mit PHP und MySQL auf Debian
Ich habe leider keine Anleitung gefunden, die die Installation von Nginx wirklich gut beschreibt und habe daher beschlossen selbst eine zu machen. Sie dient mir als Denkstütze und hilft euch hoffentlich unter Umständen auch mal. Wir fangen an mit der Installation des MySQL Servers.
aptitude install mysql-server mysql-client
Kurz und schmerzlos, Passwort vergeben und fertig. Dann wird Nginx installiert, was auch noch easy ist:
aptitude install nginx
Da er sich nach der Installation nicht allein startet tuen wir das:
/etc/init.d/nginx start
Nun installieren wir erstmal PHP und einige Module wie zum Beispiel unter anderem das MySQL Modul.
aptitude install php5-cgi php5-mysql php5-gd php-pear
In der php.ini
nano /etc/php5/cgi/php.ini
ändern wir nun diese Angabe wir folgt
[...] cgi.fix_pathinfo = 1 [...]
Da Nginx leider nich ab Werk mit PHP-Unterstützung kommt müssen wir diese noch über CGI einrichten. Andere Anleitungen schlagen hier vor den Webserver Lighttpd zu installieren, weil dort das Spawn-fcgi Packet enthalten ist, was wir brauchen. Das ist aber absolut überflüssig, da wir das auch selbst kompilieren können. Dazu laden wir es uns herunter, entpacken und wechseln in den Ordner:
http://redmine.lighttpd.net/projects/spawn-fcgi/news
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz && tar xf spawn-fcgi-1.6.3.tar.gz && cd spawn-fcgi-1.6.3
Wir führen Automake aus (Packet automake muss installiert sein)..
./autogen.shund konfigurieren Spawn-fcgi
./configureNun installieren wir es und haben damit nur das Packet auf unser System angepasst installiert.
make && make install
Nun starten wir einen Fast CGI Daemon für die PHP-Unterstützung auf Port 9000
/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
und packen den Befehl zusammen mit dem Startbefehl für Nginx (von oben) in den Systemstart von Debian.
/etc/rc.local
Meine sieht dann zum Beispiel so aus:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/ph$ /etc/init.d/nginx start exit 0
Wobei ich den Webserver auch durch einen Benutzer starten lasse. Wir editieren die Standard-Einstellung von Nginx für die default-Seite wie folgt:
nano /etc/nginx/sites-available/default
Dieser Bereich wird geändert:
location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; }
Man beachte dabei die stelle include fastcgi_params, die wegen einem Bug vorher zusammen geschrieben wurde. Das war auch schon alles..man startet Nginx neu und alles funktioniert ![]()
/etc/init.d/nginx restart
Viel Spaß





