NGINX 1.4 und php5-fpm auf Debian Wheezy

LNMP-debianvps-300x257Da die NGINX Hauptseite scheinbar kein fertiges Nginx Paket für Debian Wheezy bereitstellt und über die Debian Hauptverteilung nur Nginx 1.2.1 verteilt wird (1 Jahr alt), war es Zeit für mich, nach einer alternative zu suchen.
Natürlich steht mir die Möglichkeit offen, Nginx selbst kompilieren zu lassen, nur nach dem 10 mal bei jedem Update wird das auch irgendwann langatmig.

Nach einer kurzen Suche ergab sich, dass der Paketquellenanbieter DotDeb bereits aktuelle Pakete für Wheezy anbietet. Anscheinend können wir nun die offizielle Paketquelle nginx.org aus unserer Liste streichen.

Werbung

Hinzufügen der neuen Paketquelle

Als erstes fügen wir in unserer sources.list (/etc/apt/sources.list) folgendes ein:

# DotDeb
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

Alternativ kann auch ein Mirror von DotDeb verwendet werden um Pakete schneller zu empfangen.

Eine Liste aller verfügbaren Mirror sind auf http://www.dotdeb.org/mirrors/ verfügbar. (Der Zeitunterschied zwischen Master (DotDeb) und Slave (Mirror) beträgt hierbei etwa 3 Stunden)

Nun wird es Zeit, den Schlüssel für die Paketquellen zu installieren:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -

DotDeb Priorisieren

Mir ist schon des Öfteren passiert, dass Pakete mal von der einen Quelle, mal von der anderen Quelle installiert wurden. Dadurch hatte ich mal Version 1.2.8 und am nächsten Tag 1.2.1. Damit das nicht passiert, müssen wir DotDeb eine höhere Priorität zuweisen.

Dazu muss in die Datei (/etc/apt/preferences.d/dotdeb) geschrieben werden:

Package: *
Pin: release o=packages.dotdeb.org
Pin-Priority: 990

Eine genauere Erklärung der Priorität gibt es im Ubuntuusers Wiki.

Welche Version nun installiert wird, kann mit

apt-cache policy nginx

überprüft werden.

Pakete installieren

NGINX

Zuerst installieren wir NGINX:

apt-get install nginx

Nicht verwundert sein. Seit nginx 1.4 werden Zusatzpakete benötigt. Bei mir waren es 7 neu zu installierende Pakete (1,3MB).

Nach der Installation von nginx kann es vor kommen, dass das Paket nicht automatisch gestartet wird. Ein Neustart (reboot) oder der Manuelle Servicestart (service nginx start) hilft.

php5-fpm

Nun installieren wir die gängigsten php5 Pakete:

apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd

Konfiguration von nginx

Damit wir php unter nginx benutzen können, sind noch ein paar Anpassungen der nginx Konfiguration notwendig. Ab Nginx 1.4 werden die Hosts-Dateien in /etc/nginx/sites-enabled/ platziert und benötigen keine spezielle Dateiendung. Hier ein Beispiel für ein mit php unterstützter Host der das Verzeichnis /var/www/ benutzt (Muss noch mit mkdir /var/www/ angelegt werden)

server {
	listen 80;	# Der zu lauschende Port
	server_name www.unterhaltungsbox.com;	# Der Name für den virtuellen Host
	root /var/www;	# Der zu verwendende Ordner

	location / {
		index index.php index.html;	# Zuerst versuchen, bei einem / Aufruf die index.php zu laden, alternativ die index.html
	}

	location ~* \.php$ {	# Ermöglicht die Verarbeitung von php Dateien
		try_files $uri /index.php;
		fastcgi_index index.php;
		fastcgi_pass 127.0.0.1:9000;
		include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_param SCRIPT_NAME $fastcgi_script_name;
	}

	autoindex on;	# Funktion, ob der Verzeichnisinhalt angezeigt werden soll, wenn keine index.php oder index.html existiert
}

Nach dem anlegen der Datei muss nur noch nginx neu gestartet werden, schon ist der Webserver vollkommen einsatzbereit.

service nginx restart

Die Prozedur ist auch bei Debian Squeeze (6.0) anwendbar, allerdings müssen hierfür sämtliche Angaben von wheezly auf squeeze geändert werden (Hinzufügen neuer Paketquellen).

Author: Thomas2500

NGINX 1.4 und php5-fpm auf Debian Wheezy
4.2 (84%) 5 votes

Kommentar verfassen