Installation und Konfiguration von Nginx und PHP-fpm unter Debian

Installation und Konfiguration von Nginx und PHP-fpm unter Debian

Nataliya Oteir Read 9 minutes

Nginx ist ein Webserver, der im Jahr 2004 veröffentlicht wurde. Dieser Server ist einfach zu bedienen, aber trotzdem kann er viele Verbindungen perfekt verarbeiten. Diese Eigenschaft ist auf seine interne Architektur zurückzuführen. Ursprünglich wurde er als Server für statische Inhalte entwickelt (sogenannter Caching-Server). Im Gegensatz zum Apache verfügt Nginx nicht über einen eingebauten Interpreter für die Bearbeitung von Anfragen nach dynamischen Inhalten.

Dies erfordert eine weitere Interaktion zwischen dem Webserver und der Anwendung. Mit dem Prozessmanager PHP-FPM (FastCGI) wird dieses Problem erfolgreich gelöst. Wichtig ist, dass sich der Binder Nginx + PHP-FPM bei der Arbeit mit PHP als weniger produktiv erweist als Apache + php_mod.

Wenn Ihr Server also hohe Anforderungen an die Leistungsfähigkeit von PHP stellt, sollten Sie sich lieber das Paket apache + php_mod ansehen. Ein weiterer wichtiger Punkt ist, dass Nginx mehr Aufwand bei der Konfiguration erfordert als Apache.

Dieser Artikel befasst sich mit der Installation und einfachen Konfiguration des Nginx-Servers in Verbindung mit dem Prozessmanager PHP-FPM unter Debian 8. Alle Operationen werden unter den Rechten des Benutzers root durchgeführt.

Zuerst müssen Sie ein Update durchführen:

apt-get update

Als nächstes installieren wir Nginx:

apt-get -y install nginx

Nach der Installation werden wir den Server testen. Dazu öffnen Sie einfach die Webbrowser-Adresse unseres Servers. Der folgende Inhalt soll sich öffnen:

Dies ist die Standard-Plugin-Seite für Nginx. Der nächste Schritt ist die Installation von php5-fpm. Das ist sehr einfach:

apt-get -y install php5-fpm

Als nächstes müssen Sie die Einrichtung vornehmen. Konfigurieren Sie zunächst den Nginx-Server. Die Konfigurationsdatei befindet sich in der Datei /etc/nginx/nginx.conf.

Öffnen Sie diese Datei. Wir verwenden den Texteditor vi, aber Sie können auch einen anderen Editor verwenden, der Ihnen zusagt.

vi  /etc/nginx/nginx.conf

Machen wir uns ein wenig mit der Struktur der Datei selbst vertraut. Die gesamte Datei ist ähnlich aufgebaut wie der Programmcode. Sie enthält Direktiven. Sie sind in zwei Typen unterteilt:

  • Einfach - eine Zeichenkette mit Operatoren, die mit dem Symbol ";" enden. Zum Beispiel: pid /run/nginx.pid;
  • Block - eine Direktive mit zusätzlichen Parametern, die in geschweiften Klammern {} stehen.

Andere Direktiven können innerhalb geschweifter Klammern gesetzt werden. In diesem Fall wird er als Kontext bezeichnet, und alle Direktiven, die in der Konfigurationsdatei stehen, aber nicht in geschweiften Klammern, befinden sich im globalen Kontext oder im sogenannten Hauptkontext.

Zeichenketten, die mit dem Symbol # gekennzeichnet sind, sind Kommentare und werden in der Konfiguration nicht berücksichtigt.

Wie Sie in der Datei sehen können, gibt es eine Direktive:

include /etc/nginx/sites-enabled/*;

Diese Anweisung besagt, dass diese Konfigurationsdatei alle Konfigurationsdateien aus dem Verzeichnis /etc/nginx/sites-enabled/directory enthält. Dieses Verzeichnis enthält im Wesentlichen symbolische Links zur Konfiguration der virtuellen Hosts (im Wesentlichen die auf dem Server angebotenen Sites).

Nun müssen wir einen virtuellen Host konfigurieren, der für unsere einfachste Ressource zuständig sein wird (z. B. test.net). Zuerst legen wir ein Verzeichnis für ihn an. Machen wir daraus einen Befehl:

mkdir -p /var/www/test.net/html

Nun erstellen wir in diesem Verzeichnis eine Datei index.html mit dem folgenden Inhalt:

<html>
   <head>
      <title>Hello World</title>
   </head>
   <body>
      <h>This is a test page.</h>
   </body>
</html>

Jetzt haben wir den Inhalt der Site, lassen und eine Seite von allem. Für diese Website müssen Sie einen virtuellen Host erstellen. Kopieren Sie die Standarddatei für den virtuellen Host:

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/test.net

Öffnen Sie sie zum Bearbeiten. Die listen-Direktive hat Optionen für default_server. Es kann nur ein Block mit diesem Wert gesetzt werden, was bedeutet, dass dieser Block Abfragen bedient, für die kein geeigneterer gefunden wird. Deshalb müssen die Zeilen

listen 80 default_server;
listen [::]:80 default_server;

aus dieser Datei entfernt werden. Als nächstes müssen Sie das Stammverzeichnis konfigurieren, das den Inhalt unserer Website enthält. Dazu schreiben wir die Root-Direktive wie folgt:

root /var/www/test.net/html;

Die folgende Index-Direktive definiert die Dateien, die als Index-Dateien verwendet werden sollen. Die Reihenfolge, in der die Dateien überprüft werden, entspricht der Reihenfolge in der Konfigurationsdatei. Diese Direktive wird wie folgt geschrieben:

index index.html index.htm index.nginx-debian.html;

Die folgende server_name-Direktive gibt den Servernamen an. Als Werte geben wir den Domänennamen und den Alias an, wenn der Domänenname mit dem Präfix www angegeben wird.

server_name test.net www.test.net;

Als Nächstes müssen Sie nur noch eine location-Direktive angeben, die die Site-Konfiguration auf der Grundlage des in der Anfrage angegebenen URI-Namens festlegt. In unserem Fall wird es einfach aussehen:

location / {
   try_files $uri $uri/ =404;
}

Das bedeutet, dass zuerst Dateien und dann Verzeichnisse überprüft werden, und wenn nichts Passendes gefunden wird, wird Not Found (404) zurückgegeben.

Das ist alles mit der Konfigurationsdatei. Ihr endgültiger Inhalt ist wie folgt:

#cat /etc/nginx/sites-available/test.net
server {
     root /var/www/test.net/html;
     index index.html index.htm index.nginx-debian.html;
     server_name test.net www.test.net;
     location / {
           try_files $uri $uri/ =404;
     }
}

Alle anderen Direktiven und ihre Werte können in der offiziellen Nginx-Dokumentation nachgelesen werden, die hier zu finden ist http://nginx.org/en/docs/.

Jetzt haben wir den Inhalt der Website und ihrer Konfigurationsdatei. Nun müssen wir sie noch einbinden. Dazu erstellen Sie einen symbolischen Link:

ln -s /etc/nginx/sites-available/test.net /etc/nginx/sites-enabled/

Starten Sie den Server neu, damit die Änderungen wirksam werden:

/etc/init.d/nginx restart

Überprüfen wir die Arbeit der erstellten Ressource.

Um eine Seite zu öffnen, müssen Sie eventuell eine Zeile in die Hosts-Datei des Computers einfügen, von dem aus Sie prüfen:

xxx.xxx.xxx.xxx test.net

Где xxx.xxx.xxx.xxx - это IP-адрес сервера с установленным Nginx. Файл hosts, находится:

  • C:\Windows\System32\drivers\etc (в Win7);
  • /etc/hosts (в Debian).

Wir haben Nginx und php5-fpm installiert und die einfachste Website erstellt. Der nächste Schritt besteht darin, PHP zu konfigurieren und es mit Nginx anzuwenden.

Zuerst werden wir eine Seite mit PHP-Code auf unserem virtuellen Host erstellen. Wir erstellen die Datei /var/www/test.net/html/info.php wie folgt:

<?php
phpinfo();
?>

Öffnen Sie nun diese Seite im Browser http://test.net/info.php

Aber was ist mit der Ausführung des PHP-Codes? Einen PHP-Code haben wir nicht ausgeführt, weil der PHP-Interpreter in Nginx nicht konfiguriert ist. Gehen wir folgendermaßen vor.

Öffnen Sie unsere Konfigurationsdatei /etc/nginx/sites-available/test.net. Fügen Sie die folgende Block-Direktive hinzu:

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

Diese Direktive beschreibt die Parameter für die Verarbeitung von Abfragen, die an PHP-Dateien gehen. Ich werde hier nicht jeden einzelnen Parameter und seinen Wert beschreiben. Diese Informationen finden Sie in der offiziellen Dokumentation hier http://nginx.org/en/docs/dirindex.html

Unsere Konfigurationsdatei sieht nun wie folgt aus:

server {
root /var/www/test.net/html;
index index.html index.htm index.nginx-debian.html;
server_name test.net www.test.net;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Speichern Sie die Änderungen an der Datei und starten Sie unseren Nginx-Server neu.

/etc/init.d/nginx restart

Versuchen wir nun erneut, http://test.net/info.php zu öffnen. Das Ergebnis sollte wie folgt aussehen:

Ich habe die Informationen im Screenshot markiert, die auf die Verwendung des FPM-Managers hinweisen.

In der Tat ist die einfachste Konfiguration von Nginx + PHP-FPM-Server abgeschlossen. Die einfachste Website wird erstellt und für die Arbeit mit PHP konfiguriert.

Siehe den folgenden Artikel über die Konfiguration von PHP-FPM.

Wie nützlich war dieser Beitrag?

Klicken Sie auf einen Stern, um ihn zu bewerten!
Рейтинг: 0/5 - 0 голосов