Da 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.
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).