nginx unter Debian installieren – PHP

Im ersten Artikel über die Installation von nginx unter Debian haben wir den nginx Webserver erfolgreich installiert und können nun statische Dateien auf dem Webserver speichern.

Dieser Artikel setzt nun da an, wo der erste Artikel endete – Mit der Einrichtung von PHP unter nginx, damit Webanwendung wie WordPress installiert werden können.

Voraussetzungen

Dies ist der zweite Teil des Tutorials um nginx. Ich setze folgenden Artikel als gelesen und umgesetzt voraus:

  1. nginx auf Debian installieren / nginx auf Ubuntu installieren

Wir fangen damit an, PHP auf unserem nginx Webserver zu installieren. Das gestaltet sich denkbar einfach, denn wir haben im ersten Teil ja bereits das dotdeb.org – Paketverzeichnis benutzt, um nginx zu installieren – und über eben dieses Paketverzeichnis können wir auch PHP installieren. Wir verbinden uns wieder mit unserem SSH-Client oder Terminal und führen folgenden Befehl aus, um PHP zu installieren:

apt-get install php5-fpm

Dadurch wird das Paket PHP5-FPM aus dem dotdeb.org – Paketverzeichnis heruntergeladen und installiert. Was ist PHP5-FPM? PHP5-FPM ist die Implementierung von PHP, die wir zusammen mit nginx verwenden. PHP5-FPM steht dabei für PHP5 – FastCGI-Process-Manager und ist grob gesagt ein eigener Dienst neben nginx, der auf einem anderen Port läuft.

Mit folgendem Befehl müssen wir den PHP-Prozess starten:

/etc/init.d/php5-fpm restart

Im folgenden richten wir PHP5-FPM so ein, dass er die PHP-Dateien für nginx bearbeitet.

nginx für PHP anpassen

Jetzt müssen wir nginx noch so konfigurieren, dass es alle angeforderten PHP-Dateien an PHP5-FPM weiterleitet.

Dazu öffnen wir die /etc/nginx/sites-available/default:

nano /etc/nginx/sites-available/default

und suchen folgende Stelle:

#       location ~ .php$ {
        #       fastcgi_split_path_info ^(.+.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #       fastcgi_index index.php;
        #       include fastcgi_params;
        #       }

Nun passen wir diese Stelle folgendermaßen an:

location ~ .php$ {
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

Nun sagen wir nginx, dass er nun die index.php – Dateien standartmäßig aufruft, wenn ein Verzeichnis aufgerufen wird. Dazu ändern wir in der selben Datei

root /usr/share/nginx/www;
index index.html index.htm;

zu

root /usr/share/nginx/www;
index index.php;

Das war’s schon.

Jetzt speichern wir die Datei mit STRG + O und laden die Konfiguration von nginx mit folgendem Befehl neu:

/etc/init.d/nginx force-reload

Der Befehl hat verglichen mit den Befehl, nginx neuzustarten (/etc/init.d/nginx restart) den Vorteil, dass der Webserver nicht ganz neugestartet wird und somit auch kein Ausfall durch das stoppen, herunterfahren und starten vorhanden ist. Wenn allerdings ein Fehler beim Konfigurieren gemacht wird, funktioniert nginx auch nach einem force-reload nicht mehr. Deshalb sollte man alle Änderungen kleinschrittig vornehmen, damit man direkt weiß, was man falsch gemacht hat.

Testen, ob PHP erfolgreich installiert ist

Um zu überprüfen, ob PHP tatsächlich installiert ist, erstellen wir testweise eine index.php – Datei in dem Ordner /usr/share/nginx/www/.

Das machen wir mit folgendem Befehl:

nano /usr/share/nginx/www/index.php

Nun öffnet sich eine leere Datei. Wir tragen folgendes ein:

<?php phpinfo(); ?>

Wir speichern die Datei mit STRG + O und rufen unsere Domain, unsere IP – Adresse oder unseren Hostname auf. Falls nun so etwas erscheint:

Habt ihr alles richtig gemacht. Falls Ihr eine weiße Seite mit einer Fehlermeldung erhaltet, habt ihr etwas falsch gemacht.

Du kannst nun weitermachen, und WordPress auf nginx installieren!

Schreibt in den Kommentaren, damit ich euch helfen kann!

Codeschnipsel:

Nginx – stoppen:

/etc/init.d/nginx stop

Nginx – starten:

/etc/init.d/nginx start

Nginx – Neustarten:

/etc/init.d/nginx restart

Nginx – Config-Dateien neuladen:

/etc/init.d/nginx force-reload

PHP-FPM:
Starten:

/etc/init.d/php5-fpm start

Stoppen:

/etc/init.d/php5-fpm stop

Neustarten:

/etc/init.d/php5-fpm restart

2 Antworten auf „nginx unter Debian installieren – PHP“

  1. Hallo und danke für dein ausführliches Tutorial. Allerdings fand ich den 1.Teil einfacher, da fehlerfrei. Im 2. fehlen leider des öfteren der sudo-Befehl für die Zugriffsrechte zum erstellen der Dateien. Für Anfänger wie mich eher schlecht,lol. Aber schliessendlich habe ich alles nach deiner Anleitung erstellt, kann aber meine php-testseite NICHT über localhost abrufen. Ich erhalte immer nur : Welcome to nginx! Irgendwo habe ich wohl irgendwas verpasst, kann es leider, trotz mehrmaligem nachlesens , nichts finden. Vieleicht kannst du mir ja weiterhelfen, thx und nochmals vielen Dank ….
    mfg Varbeast

    1. Hast du dann auch zur Datei navigiert? Sprich wenn deine Testdatei test.php heißt localhost/test.php?

      So aus dem Stehgreif brauche ich mehr Infos.

      Und zu der Sudo-Sache: Nicht jeder hat Ubuntu oder verwendet sudo 😉

      Grüße,
      Pascale

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.