Nginx Webserver mit PHP einrichten

Wenn man PHP-Scripte mit einem Nginx Webserver anbieten möchte stößt man schnell auf zwei Probleme. Zum einen kann man nicht einfach ein Modul aktivieren wie bei Apache und zum anderen kann Nginx keinen eigene PHP Prozesse starten.

Diese Nachteile können auch sehr schnell zu Vorteile, vor allem bei großen Webseiten umschwenken.

Das einfachste ist die PHP Dateien über einen Proxy zu kompilieren. Dazu muss man zwei Dinge machen.

1.: PHP5-cli im Proxymodus starten:

Dabei müssen natürlich die Pfade angepasst werden. Zur Erklärung:

  • Das „-b ip-Adresse:Port“ gibt an auf welche IP-Adresse PHP Hören soll und auf welchem Port.
  • Mit „-c pfadZurPhp.ini“ gibt an welche PHP.ini benutzt werden soll

Zwar benutze ich hier als Beispiel Windows aber es sollte 1:1 in die anderen Betriebssysteme übernehmen möglich sein.

2.: FastCGI Konfigurieren:

  • fastcgi_pass: Dort gibt auf welchem Server der PHP „Proxy“ läuft
  • fastcgi_index: Gibt an welches Script aufgerufen wird wenn keine Datei in der URL angegeben wurde
  • fastcgi_param: Gibt an welche Informationen an den PHP Proxy übertragen werden. Hier werden einzelne Variabeln gesetzt.
  • „Include fastcgi_params“ bindet die Standard Parameter Einstellungen ein

Will man bestimmt Ordner absichern und dort die Ausführung von PHP-Dateien verhindern kann man auch die URL in der Konfiguration überprüfen. Zum Beispiel:

Bei diesem Beispiel wird überprüft ob die aufgerufene Url „/images“ enthält. Wenn dies nicht der Fall ist (wegen „!-“ ) wird die Datei an den Proxy weitergeleitet.

Auch hier sind die Möglichkeiten nahe zu unbegrenzt. Wer Nginx und PHP Produktiv einsetzen möchte, sollte den PHP-Proxy mit einem Init-Script starten, damit dieser auch wieder nach einem Server start nicht von Handgestartet werden.
Wie das geht erklärt das Nginx-Wiki sehr gut: http://wiki.nginx.org/PHPFcgiExample

Johannes

Hauptberuflich bin ich im Bereich Filesecurity unterwegs und schütze die Daten meines Arbeitgebers vor internen und externen Gefahren. Nebenberuflich helfe ich KMUs als IT-Consultent bei der IT-Strategie sowie bei der Entwicklung von Webanwendungen.

Schreibe einen Kommentar

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