nginx + php5-fpm funktioniert nicht richtig. Ich sehe nur einen weißen Bildschirm


11

Ich habe gerade nginx und php5-fpm installiert und möchte es auf Port 82 testen. Also rufe ich http://mysite.com:82/test555.php an und sehe nichts. Nur ein weißer Bildschirm. Keine Fehler, keine Warnungen, ich sehe überhaupt nichts :) Es gibt ein Fehlerprotokoll von nginx und ein Fehlerprotokoll von php5-fpm - aber ... Es gibt keine Fehler. Ich verstehe nicht, was los ist. Bitte helfen Sie mir, es herauszufinden.

root@localhost:# echo "<?php phpinfo(); ?>" > /home/www/public_html/test555.php
root@localhost:# chmod 755 /home/www/public_html/test555.php
root@localhost:# cat /etc/nginx/sites-available/default
server {
        listen 82;
        root /home/www/public_html;
        index index.php index.html;

        server_name mysite.com;
        access_log /var/log/nginx/nginx-access.com.log;
        error_log /var/log/nginx/nginx-errors.com.log;

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                # fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
                fastcgi_param QUERY_STRING              $query_string;
                fastcgi_param REMOTE_ADDR               $remote_addr;
        }
}

root@localhost:# /etc/init.d/nginx status
 * nginx is running

root@localhost:# /etc/init.d/php5-fpm status
 * php5-fpm is running

root@localhost:# ls -la /var/run/php5-fpm.sock
srw-rw-rw- 1 root root 0 Feb  3 01:14 /var/run/php5-fpm.sock

root@localhost:# cat /var/log/php5-fpm.log 
....
[03-Feb-2014 01:14:52] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
[03-Feb-2014 01:14:52] NOTICE: fpm is running, pid 19080
[03-Feb-2014 01:14:52] NOTICE: ready to handle connections

root@localhost:# cat /var/log/nginx/nginx-access.com.log
...ip... - - [03/Feb/2014:01:29:44 +0000] "GET /test555.php HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0"

root@localhost:# cat /var/log/nginx/nginx-errors.com.log

root@localhost:#

Was kann ich als nächstes tun, um herauszufinden, was los ist? Ich sehe, es sollte gut funktionieren. Das PHP-Skript gibt mir Code = 200 zurück, aber ich sehe die Ausgabe nicht. Es wurde nie aufgerufen, weil ich dort versucht habe, file_put_contents hinzuzufügen, und es wurde wirklich nie von nginx aufgerufen.

Ich benutze Ubuntu 12.04 heute vollständig aktualisiert.


Was sind die Inhalte von /var/log/nginx/nginx-errors.com.log?
Samiam


Ich hatte ein ähnliches Problem. Nginx verarbeitete eine Seite zur Hälfte und hielt dann an. Es gab keine Fehler in Nginx-Protokollen. Ich habe es behoben, indem ich die Nginx Fastcgi-Pufferung geändert habe. Siehe stackoverflow.com/a/43294078/1008916
Mugoma J. Okomba

Antworten:


16

Diese SO-Fragen und Antworten klingen möglicherweise nach Ihrem Problem mit dem Titel: nginx mit leeren PHP-Seiten .

Ihre locationStrophe sollte ungefähr so ​​aussehen:

location ~ \.php$ {
    include /path/to/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /path/to/www/dir$fastcgi_script_name;
}

Sie müssen besonders auf den Pfad zu dem Skript achten, auf das Sie verweisen fastcgi_param.

Verweise


Ja, das war meine Schuld. Ich habe eine Zeile hinzugefügt: "include fastcgi_params;" zum Standort und jetzt funktioniert es!
JavaRunner

@JavaRunner - froh zu hören, dass Ihr Problem behoben wurde!
slm

13

Dies kann für andere nützlich sein, die mit diesem Problem konfrontiert sind.

Sie können Ihrer nginx conf-Datei auch fastcgi_paramsdie folgende Zeile hinzufügen , sodass Sie keinen Pfad zur Variablen angeben müssenSCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Dies ist besonders praktisch, wenn Sie viele virtuelle Hosts haben.


danke, das ist viel besser als die ganze Zeit einen anderen Pfad
einzuschließen

1
Dies löste mein Problem unter Ubuntu 14.04. Es handelt sich um eine Neuinstallation, die Nginx aus Repositories stammte. Vielen Dank!
Arda
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.