Installation von Nginx mit PHP und MySQL unter Ubuntu/Debian ohne Lighthttpd/Spawn-fcgi

internet

Viele Anleitungen für Nginx die ich im Internet gefunden habe, sagen immer man soll sich das Spawn-fcgi Packet kompilieren, oder gleich Lighttpd für PHP installieren. Dabei gibts seit PHP 5.3.3 ein wunderschönes neues Feature: PHP-FPM! PHP-FPM ist eine alternative PHP FastCGI Implementation, mit einigen coolen Zusatzfeatures. Wer mehr Infos möchte, kann gerne die Seite von PHP-FPM besuchen.

Die folgende Installation wird auf einem jungfräulichen Ubuntu 10.04 durchgeführt. In etwa kann man das auf jede Debian Distribution projizieren.

Vorbereitung:

Als erstes müssen wir die eine Quelle hinzufügen, um an PHP-FPM zu kommen:

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:nginx/php5.3

Wenn ihr wollt, könnt ihr auch die Launchpad Quelle von Nginx hinzufügen, um die neuste stabile Version von Nginx zu bekommen:

sudo add-apt-repository ppa:nginx/stable

Nach einen Update der Quellen…

sudo apt-get update

… können wir mit dem installieren unserer Packete anfangen:

sudo apt-get install nginx php5-cli php5-common php5-suhosin mysql-server

Denkt daran ein sichere root-Passwort festzulegen!

Und im 2. Schritt erst PHP-FPM um Probleme mit cli zu vermeiden

sudo apt-get install  php5-fpm php5-cgi

Eventuell erhaltet ihr die Fehlermeldung „[ERROR] [pool www] the chdir path ‚/var/www‘ does not exist or is not a directory“. Um das Problem zu beheben erstellt einfach der Ordner „/var/www“

nginx:

Startet nun den Server neu, und gebt eure IP in einen Browser ein. Wenn ihr ein

Welcome to nginx!

zusehen bekommen, läuft nginx!

Nun zu….

MySQL:

Den MySQL könnt ihr via

sudo service mysql start

starten. Um zu prüfen ob alles läuft, könnt ihr den Befehl

mysqladmin ping -p

verwende. Nach Eingeben eures Passwort für root, solltet ihr die Meldung „mysqld is alive“ zurück bekommen. Weiter gehts mit…

PHP:

Nun da nginx läuft, müssen ihm noch zeigen dass er PHP nutzen soll. Das machen wir indem wie die Rauten in der Datei „/etc/nginx/sites-available/default“ oder“ /etc/nginx/nginx.conf“ (je nach nginx Version) vor folgenden Zeilen entfernen:

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

}

Nun noch den nginx via

sudo service nginx restart

neustarten, und wir sind fertig! Um zu prüfen ob nginx und php laufen, erstelle einfach eine index.php unter „/usr/share/nginx/www/“ oder „/var/www/“ (je nach Version) mit folgendem Inhalt:

<?php
phpinfo();
?>
und ruft diese Datei in einem Browser auf. Wenn ihr in etwa sowas seht:
Screenshot 2011 03 18 15h 53m 19s

… läuft PHP erfolgreich!

Mit nginx , PHP und MySQL steht euren Web-Projekten nun nix mehr im Wege. Das ganze könnt ihr noch konfigurieren, das würde allerdings den Rahmen dieser Anleitung sprengen. Anfänger fangen zB hier mit nginx an, php etc sollte man erst konfigurieren wenn man sich ein bisschen eingearbeitet hat.

Danke an interfacelab.com und howtoforge.com die mir beim Erstellen dieser Anleitung hilfreich waren!

Fragen und Anregungen gerne in die Kommentare posten 🙂

 

Updates:

  1. PPA für 5.3 eingefügt