Home > Anleitungen, For Dummies, Linux, Tools > [Tutorial] Saubere Installation von Nginx mit PHP und MySQL auf Debian

[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 die Packete auch von hier bekommen können:

http://packages.debian.org/de/sid/web/spawn-fcgi

Entsprechende Plattform auswählen (durch Eingabe von “uname -m” in der Shell kann man sein System herausfinden) und herunterladen

wget http://ftp.cl.debian.org/debian/pool/main/s/spawn-fcgi/spawn-fcgi_1.6.2-3_i386.deb

und installieren.

dpkg -i spawn-fcgi_1.6.2-3_i386.deb

Nun starten wir einen Fast CGI Daemon für die PHP-Unterstützung auf Port 9000

/usr/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 ihn zusammen mit dem Startbefehl für Nginx 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ß


Verwandte Artikel:

  1. Torrentflux-B4rt Installation unter Debian Etch [Tutorial]
  2. [Tutorial] Teamspeak 2 Installation unter Debian
  3. Dhyana – Screenshots und Previews von Filmen unter Debian
  4. Remote Desktop unter Debian Etch & Lenny mit NXServer und KDE
  5. [Tutorial] Dropbox unter Ubuntu 8.10


Author: chris Categories: Anleitungen, For Dummies, Linux, Tools Tags:
  1. 3. Dezember 2009, 22:52 | #1

    Hammer! Genau das was ich gebraucht habe. Ideale Ergänzung zur Einrichtung von Rails auf Passenger http://wiki.rubyonrails.org/deployment/vps-setup-nginx-passenger

  2. dirk
    20. Januar 2010, 15:20 | #2

    auch dein tutorial ist nicht sauber. ;) PHP5 selber liefert schon lange alles von haus aus mit, somit ist das quatsch mit dem FCGI nachinstallieren. eine info dazu mit init script findet man bei nginx selber. siehe hier: http://wiki.nginx.org/PHPFcgiExample#Spawning_a_FastCGI_Process

  1. Bisher keine Trackbacks