Debian NGINX und PHP

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Debian NGINX und PHP

Beitrag von Stefan » 30.10.2024 14:12:36

Hallo zusammen,

ich habe auf meinem Debian ein nginx Server laufen mit zwei virtuellen Host.
Jetztz brauche ich für einen virtuellen Host PHP und habe versucht diesen zu installieren.
Leider bekomme ich auf dem Host kein PHP zum laufen.

Code: Alles auswählen

apt install -y php8.2 php8.2-fpm

sudo systemctl start php8.2-fpm  
sudo systemctl enable php8.2-fpm
Ich habe dann die passende conf angepasst:
nano /etc/nginx/sites-available/foto.intern.fahl-secure.de-80.conf

Code: Alles auswählen

server {
        listen 80;
        # Add index.php to setup Nginx, PHP & PHP-FPM config  
        index index.php index.html index.htm;
        server_name foto.fahl-secure.de;
        root /var/www/sites/foto.intern.fahl-secure.de;
        
        access_log   /var/log/nginx/foto.intern.fahl-secure.de-80-access.log;
        error_log    /var/log/nginx/foto.intern.fahl-secure.de-80-error.log;

        # The following option enables or disables emitting nginx version on error pages and in the "Server" response header field:
        server_tokens off;


location ~ [^/]\.php(/|$) {

            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            if (!-f $document_root$fastcgi_script_name) {
                        return 404;
            }

            # Mitigate https://httpoxy.org/ vulnerabilities
            fastcgi_param HTTP_PROXY "";
            fastcgi_pass unix:/run/php/php8.2-fpm.sock;
            fastcgi_index index.php;

}

        location / {

                allow all;
                deny all;
        }

} # of server
sudo nginx -t
und ein nginx reboot gemacht.

PHP läuft

Code: Alles auswählen

systemctl status php8.2-fpm
* php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-10-27 11:17:15 UTC; 3 days ago
       Docs: man:php-fpm8.2(8)
    Process: 6549 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/fpm/pool.d/www.conf 82 (code=exited, status=0/SUCCESS)
   Main PID: 6546 (php-fpm8.2)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0.00req/sec"
      Tasks: 3 (limit: 38065)
     Memory: 7.5M
        CPU: 11.979s
     CGroup: /system.slice/php8.2-fpm.service
             |-6546 "php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)"
             |-6547 "php-fpm: pool www"
             `-6548 "php-fpm: pool www"
Ein

Code: Alles auswählen

 curl http://foto.intern.fahl-secure.de/info.php
bringt diese Meldung:

<html> <head><title>404 Not Found</titl ... y> </html>

Die info.php ist aber vorhanden und hat diesen Inhalt:

Code: Alles auswählen

<?php
  phpinfo();
?>
und die Datei ist auch da:
ls -al /var/www/sites/foto.intern.fahl-secure.de/info.php
-rw-rw-r-- 1 www-data www-data 22 Oct 27 11:28 /var/www/sites/foto.intern.fahl-secure.de/info.php
Wenn PHP nicht laufen würde, müsste ich doch den Code oder die Datei zum Download angeboten bekommen?
Wenn ich die Seite Aufrufe, bekomme ich ein 502 Bad Gateway
nginx.

Was mache ich hier falsch?
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

hec_tech
Beiträge: 1094
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Debian NGINX und PHP

Beitrag von hec_tech » 30.10.2024 14:18:16

/run/php/php-fpm.sock statt php8.2-fpm.sock soviel ich sehe.

edit:

Code: Alles auswählen

        location / {

                allow all;
                deny all;
        }
Was soll das bringen?

Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Re: Debian NGINX und PHP

Beitrag von Stefan » 30.10.2024 15:00:17

Hallo,

ich habe /run/php/php-fpm.sock eingetragen und nginx restartet.
Leider bingt es immer noch ein BAD Gateway.

Code: Alles auswählen

 allow all;
                deny all;
Danke, ich habe die Zeile gelöscht.
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Re: Debian NGINX und PHP

Beitrag von Stefan » 30.10.2024 19:36:41

Hallo zusammen,

leider komme ich hier nicht weiter.

tail -f /var/log/nginx/foto.intern.fahl-secure.de-80-error.log
2024/10/30 14:49:20 [crit] 19963#19963: *80 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:20 [crit] 19963#19963: *82 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:20 [crit] 19963#19963: *84 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:21 [crit] 19963#19963: *86 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:21 [crit] 19963#19963: *88 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:21 [crit] 19963#19963: *90 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 14:49:21 [crit] 19963#19963: *92 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 17:28:52 [error] 19963#19963: *142 open() "/var/www/sites/foto.intern.fahl-secure.de/robots.txt" failed (2: No such file or directory), client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /robots.txt HTTP/1.0", host: "foto.fahl-secure.de"
2024/10/30 17:31:51 [crit] 19963#19963: *143 connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "foto.fahl-secure.de"
2024/10/30 18:08:00 [crit] 20649#20649: *2 connect() to unix:/run/php/php8.2-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.0.33, server: foto.fahl-secure.de, request: "GET /info.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php8.2-fpm.sock:", host: "foto.fahl-secure.de"
^C
root@Webserver:/home/stefan# nano /etc/nginx/sites-available/foto.intern.fahl-secure.de-80.conf
Als erstes habe ich ein Rechteproblem gedacht,die Rechet sind aber gesetzt.
sudo chmod 660 /run/php/php8.2-fpm.sock
sudo chown www-data:www-data /run/php/php8.2-fpm.sock
sudo systemctl restart php8.2-fpm
Hätte einer von euch noch eine Idee?
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Debian NGINX und PHP

Beitrag von heisenberg » 30.10.2024 23:59:50

Ich habe kurz mal auf der Basis einer ChatGPT-Frage ein funktionierendes Minimalbeispiel gebastelt:

Code: Alles auswählen

server {
    # Port 80 für HTTP-Anfragen
    listen 80 default_server;
    server_name _;

    # Root-Verzeichnis für die Webdateien
    root /var/www/meine-seite;
    index index.php index.html index.htm;

    # Zugriffsbeschränkungen
    location / {
        allow all;
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Konfiguration für PHP-Dateien
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;

        # Verweis auf den PHP-FPM-Socket für PHP 8.2
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Vielleicht kannst Du damit mal anfangen zu testen. Wenn das dann geht, kannst Du das schrittweise zu Deiner Konfiguration umbauen.

Das ist bei mir ein Bookworm-System mit Standard-nginx und php8.2-fpm.

Den "BAD Gateway" Fehler hatte ich auch. Bei mir war der Socket für das PHP-FPM falsch. Die per include eingebundenen Dateien sind im Paket bereits enthalten.

Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Re: Debian NGINX und PHP

Beitrag von Stefan » 31.10.2024 11:22:49

Hallo,

ich habe die Einstellungen einmal übernommen, leider habe ich immer noch ein BAD Garteway.
Den "BAD Gateway" Fehler hatte ich auch. Bei mir war der Socket für das PHP-FPM falsch. Die per include eingebundenen Dateien sind im Paket bereits enthalten.
Mit welchen Einstellungen hast du das den behoben?
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

Benutzeravatar
oln
Beiträge: 537
Registriert: 05.01.2021 09:41:24

Re: Debian NGINX und PHP

Beitrag von oln » 31.10.2024 11:39:01

Moin,
als erstes solltest du mal schauen, ob dein FPM überhaupt läuft:

Code: Alles auswählen

systemctl status php8.2-fpm.service
Wenn der läuft poste mal bitte den Inhalt von /etc/php/8.2/fpm/pool.d/www.conf. Dort steht auch der Socket drin.
Gruß Ole
AbuseIPDB

Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Re: Debian NGINX und PHP

Beitrag von Stefan » 31.10.2024 15:50:49

Hallo,

systemctl status php8.2-fpm.service
* php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-10-30 18:16:15 UTC; 20h ago
Docs: man:php-fpm8.2(8)
Process: 20776 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/f>
Main PID: 20773 (php-fpm8.2)
Status: "Processes active: 0, idle: 2, Requests: 9, slow: 0, Traffic: 0.00req/sec"
Tasks: 3 (limit: 38065)
Memory: 7.9M
CPU: 3.350s
CGroup: /system.slice/php8.2-fpm.service
|-20773 "php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)"
|-20774 "php-fpm: pool www"
`-20775 "php-fpm: pool www"

Oct 30 18:16:15 Webserver systemd[1]: Starting php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager...
Oct 30 18:16:15 Webserver systemd[1]: Started php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager.

Und die /etc/php/8.2/fpm/pool.d/www.conf. habe ich hier hochgeladen.

https://pastebin.com/8Rt9hJ2n

Die passende Socket habe ich nicht gefunden, dei Gruppe www-data und die Rechte scheinen zu stimmen.

Wo finde ich den die passende Socket ?
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Debian NGINX und PHP

Beitrag von heisenberg » 31.10.2024 16:06:13

Die Direktive für den Socket in der Pool-Konfiguration heisst "listen". Die Datei wurde bereits genannt.

D. h. der Socket in Deiner Konfiguration ist korrekt.

Benutzeravatar
Stefan
Beiträge: 1436
Registriert: 08.09.2002 14:31:59
Lizenz eigener Beiträge: GNU General Public License

Re: Debian NGINX und PHP

Beitrag von Stefan » 31.10.2024 19:00:16

Hallo,

es freut mich, das die Datei und die Einträge in der config in Ordnung sind.
Leider bringt es mich dem eigentliche Ziel nict weiter.

Ich gehen jetzt davon aus, dass ich ein Rechtproblem habe.

Ich habe in der /etc/nginx/site-avalabile/foto.intern.fahl-secure.de-80.conf
Diese Angabe eingefügt.

user www-data;

Jetzt bekomme ich kein BAD Gateway sondern eine weiße Seite angezeigt.
Hätte noch einer Ideen wie man PHP und nginx zum laufen bekommt?

Ich habe bei der /etc/php/8.2/fpm/php.ini die cgi.fix_pathinfo=0 gesetzt, also von 1 auf 0
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkle zu treiben und ewig zu binden, Im Lande Microsoft wo die Schatten drohen.

Debian 7 3.2.0-4 64 - MSI nVidia GeForce 7600 GS - 8 DDR2 SDRAM 800 MHz Quad-CoreIntel Xeon : 2,67 GHz - Gigabyte GA-EP45-DS3 - 256GB SSD 840 Pro Gnome 3

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Debian NGINX und PHP

Beitrag von heisenberg » 31.10.2024 20:08:23

Ich habe Dir oben eine - von mir erfolgreich getestete - Konfiguration geschrieben. Die sollte mit einem normalen Bookworm funktionieren.

Ich empfehle Dir eine neue VM aufzusetzen und meine Konfiguration dort zu testen. Wenn dort dann das PHP funktioniert, kannst Du die Konfiguration Schritt für Schritt zu Deiner jetzten nicht funktionierenden Konfiguration umbauen. Zwischendrin immer wieder testen. Wenn Du dann auf dem Testsystem eine zufriedenstellende Konfiguration hast, kannst Du zum einen die Erkenntnisse aus dem Prozess auf Deine "Produktivumgebung" umsetzen und zum anderen die beiden Systeme vergleichen, was dort anders ist und so vielleicht Fehlern auf die Spur kommen.

Ansonsten natürlich immer die relevanten Logfiles beobachten.

Antworten