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();
?>
… 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:
- PPA für 5.3 eingefügt
Für alle die das hier noch finden
Bitte so Auskommentieren
location ~ .php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
Sonst gibt es einen 503 Bad Gateway Fehler