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.

JavaRunner
quelle
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

slm
quelle
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.

Adriano Rosa
quelle
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