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 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.sh

und konfigurieren Spawn-fcgi

./configure

Nun 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ß


Verwandte Artikel:

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


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

  3. 19. Mai 2010, 09:03 | #3

    danke für die zusammenfassung!

    @dirk, korrekt gibt es die sachen von php gleich mit, jedoch ist meine erfahrung das diese nicht wirklich stabil läuft. das jedenfalls in meinem setup.

    als alternative habe ich noch http://php-fpm.org/ gefunden, jedoch möchte ich so wenig wie möglich selbst kompilieren auf den systemen. allein wegen dem pflege und wartungsaufwand.

  1. Bisher keine Trackbacks