Nginx 1.4.x auf Unix Systemen

Diese Dokumentation deckt die Installation und Konfiguration von PHP mit PHP-FPM für ein Nginx 1.4.x HTTP Server ab.

Diese Anleitung setzt voraus, dass Sie Nginx aus dem Quelltext erstellt haben und dadurch alle Binaries haben und die Konfigurations Dateien in /usr/local/nginx abgelegt sind. Wenn dies nicht der Fall ist und Sie Nginx über eine andere Quelle bezogen haben, dann sehen Sie bitte unter » Nginx Wiki nach, um dieses Manual für Ihre Installation zu übersetzen.

Diese Anleitung wird die Basics der Konfiguration eines Nginx Servers abdecken, um PHP Applikationen auszuführen und unter Port 80 bereitzustellen. Eine Studie der Nginx und PHP-FPM Dokumentation ist Voraussetzung für eine optimale Installation, die auch über den Umfang dieser Dokumentation hinaus geht.

Hinweis: In dieser Dokumentation wurden Versionsnummern durchgehend mit einem 'x' ersetzt. Dies stellt sicher, dass die Dokumentation auch für künftige Versionen richtig bleibt. Bitte ersetzen Sie diese soweit notwendig mit Ihrer entstprechenden Version.

  1. Voraussetzung ist, dass Sie im Nginx Wiki die » Installations Seite besuchen, um Nginx für Ihr System zu erhalten und zu installieren.

  2. Erhalten und entpacken der PHP-Quelle:

    tar zxf php-x.x.x
    
  3. Konfigurieren und Erstellen von PHP. Dies ist die Stelle, an der Sie Ihre PHP Installation individuell mit verschiedenen Optionen anpassen. Sowas wie: welche Erweiterung (extension) aktiviert (enabled) wird. Führen Sie ./configure --help für eine Liste der verfügbaren Optionen aus. In unserem Beispiel werden wir eine einfache Konfiguration mit PHP-FPM and MySQLi Unterstützung durchführen.

    cd ../php-x.x.x
    ./configure --enable-fpm --with-mysqli
    make
    sudo make install
    
  4. Erhalten und verschieben von Konfigurationsdateien an die richtige Stelle

    cp php.ini-development /usr/local/php/php.ini
    cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
    cp sapi/fpm/php-fpm /usr/local/bin
    
  5. Es ist wichtig, dass wir Nginx daran hindern Anfragen an das PHP-FPM Backend zu leiten, wenn die Datei nicht existiert. Dies erlaubt uns willkürliche Skript Eingaben (script injection) zu verhindern.

    Wir können dies durch eine Einstellung beheben, indem wir innerhalb unserer php.ini Datei die cgi.fix_pathinfo Direktive auf 0 setzen.

    Einlesen der php.ini:

    vim /usr/local/php/php.ini
    

    Positionieren auf cgi.fix_pathinfo= und wie folgt modifizieren:

    cgi.fix_pathinfo=0
    
  6. php-fpm.conf muss angepasst werden, damit php-fpm als User www-data und Gruppe www-data ausgeführt wird, bevor wir es Service starten können:

    vim /usr/local/etc/php-fpm.d/www.conf
    

    Finden und modifizieren Sie folgendes:

    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ;       will be used.
    user = www-data
    group = www-data
    

    Der php-fpm Service kann wie folgt gestartet werden:

    /usr/local/bin/php-fpm
    

    Diese Anleitung wird nicht weiter auf die php-fpm Konfiguration eingehen. Wenn Sie weiteres Interesse an der php-fpm Konfiguration haben, dann ziehen Sie bitte die entsprechende Dokumentation heran.

  7. Nginx muss jetzt konfiguriert werden, um PHP Applikationen ablaufen zu lassen:

    vim /usr/local/nginx/conf/nginx.conf
    

    Modifizieren Sie den Bereich voreingestellte Positionen, um zu gewährleisten, dass .php Dateien verarbeitet werden:

    location / {
        root   html;
        index  index.php index.html index.htm;
    }

    Der nächste Schritt soll sicherstellen, dass .php Dateien an des PHP-FPM Backend geleitet werden. Geben Sie unter dem auskommentierten standard PHP location Block folgendes ein:

    location ~* \.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;
    }

    Neustart von Nginx.

    sudo /usr/local/nginx/sbin/nginx -s stop
    sudo /usr/local/nginx/sbin/nginx
    
  8. Erstellen einer Test Datei

    rm /usr/local/nginx/html/index.html
    echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
    

    Nun navigieren Sie zu http://localhost. Die Funktion phpinfo() sollte nun angezeigt werden.

Folgen Sie den obigen Schritten und Sie werden ein laufenden Nginx Web-Server mit Unterstützung für PHP als ein FPM SAPI Modul erhalten. Natürlich sind noch viel mehr Konfigurations-Einstellungen für Nginx und PHP verfügbar. Für weitere Informationen geben Sie ./configure --help im entsprechenden Quellpfad ein.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Definition von Stored Procedures - eine Einführung

Stored Procedures sind vordefinierte SQL-Codeblöcke, die in einer Datenbank gespeichert sind und bei Bedarf aufgerufen werden können. ...

Bernie

Autor : ebiz-consult GmbH & Co. KG
Kategorie: mySQL-Tutorials

Wie kann man komplexe Abfragen mit SQL-Querys In MySQLi effektiv durchführen?

In diesem MySQL-Tutorial wird erklärt, wie komplexe SQL-Abfragen in MySQLi effizient durchgeführt werden können. Wir werden uns mit verschiedenen Aspekten der Datenbankabfrage beschäftigen und spezifische Methoden kennenlernen. ...

TheMax

Autor : TheMax
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Professioneller Webentwickler & Webdesigner

Of course, here is the translation: Hello, Thank you for your interest in the long-term project. Your extensive skills and experience in web dev ...

Geschrieben von Athelstan am 15.04.2024 09:25:39
Forum: Jobgesuche
Wir stellen unsere SEO-Agentur vor

Hallo In der heutigen digitalen Welt war es für Unternehmen noch nie so einfach, ihre Reichweite weltweit zu vergrößern. Wenn Sie außerhalb I ...

Geschrieben von thomasmuller am 14.04.2024 07:18:33
Forum: User stellen sich vor
Spielplan für 4 Gruppen zu je 6 Teams auf 2 Feldern

Hallöchen zusammen, ich versuche derzeit unseren Excel-Spielplan in PHP zu überführen. Eigentlich bin ich auch shon fertig - wenn da nicht dies ...

Geschrieben von derH0st am 11.04.2024 15:58:37
Forum: PHP Developer Forum
PHP 8.3.3 - App kann auf dem PC nicht ausgeführt werden

Problem gelöst. Die php.exe hatte einen defekt. Neue heruntergeladen und fertig.

Geschrieben von Tetra1081 am 10.04.2024 16:49:14
Forum: PHP Developer Forum