Wie betreibe ich php mit nginx ohne Apache2

  • Hallo zusammen,

    bedingt des Wechsels von Apache2 auf nginx stelle ich mir die Frage wo und wie konfiguriere ich mein php.

    Denn im Verzeichnis */8.3/ zeigt es mir folgendes an:

    Code
    apache2
    cli
    mods-available

    aber kein Verzeichnis nginx.

    Wie konfiguriere ich php für den Webserver nginx?

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • NGinx hat kein eingebautes PHP-Modul, du musst auf Fast-CGI umschwenken. DO hat ein brauchbares Tutorial: https://www.digitalocean.com/community/tutorials/php-fpm-nginx

    Edit:

    Sorry, hatte nicht gesehen, dass es um das Webhosting geht. Da steht PHP für NginX ohnehin nur bis Version 7.2 bereit. Das ist halt nicht mehr das frischeste. Einstellen kannst Du es unter Websites & Domains → PHP-Einstellungen. Danach sollten PHP-Scripte unterhalb der entsprechenden DOCROOT ausgeführt werden.

  • NGinx hat kein eingebautes PHP-Modul, du musst auf Fast-CGI umschwenken. DO hat ein brauchbares Tutorial: https://www.digitalocean.com/community/tutorials/php-fpm-ngin

    Danke für den Link

    Sorry, hatte nicht gesehen, dass es um das Webhosting geht. Da steht PHP für NginX ohnehin nur bis Version 7.2 bereit. Das ist halt nicht mehr das frischeste. Einstellen kannst Du es unter Websites & Domains → PHP-Einstellungen. Danach sollten PHP-Scripte unterhalb der entsprechenden DOCROOT ausgeführt werden.

    Es geht um kein Webhosting-Paket sondern um die Verwendung von php für nginx auf einem root Server.

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Und kann ich für Nextcloud bei nginx + php8.3 folgende Pakete installieren:

    • php8.3-mbstring php8.3-mysql php8.3-mysqli php8.3-mbstring
    • php8.3-intl php8.3-bcmath php8.3-gmp php8.3-imagick php8.3-apcu php8.3-fpm
    • libmagickcore-6.q16-6-extra
    • php8.3-redis 


    oder ist eines der Pakete spezifisch für Apache Webserver?

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Und muss ich für jede Anwendung zusätzlich zu

    Code
    /etc/nginx/sites-available/

    eine php *.conf in

    Code
    /etc/php/7.3/fpm/pool.d

    anlegen?

    Oder habe ich da bedingt der Link-Anleitung was falsch verstanden?

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Und kann ich für Nextcloud bei nginx + php8.3 folgende Pakete installieren: […] oder ist eines der Pakete spezifisch für Apache Webserver?

    Keines der Pakete sollte Apache-spezifisch sein.

    Übrigens: Sofern hier Debian oder Ubuntu auf dem eigenen Server zum Einsatz kommt, empfiehlt sich ein Blick auf die jeweiligen Ubuntu PPA (Personal Package Archive(s)) bzw. Debian DPA (Debian Package Archive(s)) von Ondřej Surý.

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE

  • Keines der Pakete sollte Apache-spezifisch sein.

    Übrigens: Sofern hier Debian oder Ubuntu auf dem eigenen Server zum Einsatz kommt, empfiehlt sich ein Blick auf die jeweiligen Ubuntu PPA (Personal Package Archive(s)) bzw. Debian DPA (Debian Package Archive(s)) von Ondřej Surý.

    Danke

    Ich nutze php von Sury unter Debian installiert.

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Und muss ich für jede Anwendung zusätzlich zu

    Code
    /etc/nginx/sites-available/

    eine php *.conf in

    Code
    /etc/php/7.3/fpm/pool.d

    anlegen?

    Muss man nicht, kann aber unter Umständen Sinn machen. Auch um eine Trennung zwischen verschiedenen Anwendungen zu erhalten.

    Ich verwende z.B. für jede Domain einen eigenen PHP Pool. Damit setze ich dann unterschiedliche Prozess User und PHP Parameter.

    In den nginx /etc/nginx/sites-available/* Dateien kann man auch viel mit include "Verlinkungen" vereinfachen. Bietet sich für Einstellungen an, welche in allen Anwendungen gleich sein sollen.

    Beispiel wäre so was:

    Code
    server {
        ...
        include /etc/nginx/include.d/all-common;
        include /etc/nginx/include.d/ssl-common;
        ...
    }