nginx + php5-fpm ทำงานไม่ถูกต้อง ฉันเห็นหน้าจอสีขาวเท่านั้น


11

ฉันเพิ่งติดตั้ง nginx และ php5-fpm และฉันต้องการทดสอบบนพอร์ต 82 ดังนั้นฉันจึงเรียกhttp://mysite.com:82/test555.phpและฉันไม่เห็นอะไรเลย เพียงแค่หน้าจอสีขาว ไม่มีข้อผิดพลาดไม่มีคำเตือนฉันไม่เห็นอะไรเลย :) มีบันทึกข้อผิดพลาดของ nginx และบันทึกข้อผิดพลาดของ php5-fpm - แต่ ... ไม่มีข้อผิดพลาดใด ๆ ฉันไม่ได้แยกแยะว่ามีอะไรผิดปกติ โปรดช่วยฉันค้นหามันด้วย

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:#

ฉันจะทำอย่างไรต่อไปเพื่อค้นหาว่าเกิดอะไรขึ้น ฉันเห็นมันควรจะทำงานได้ดี สคริปต์ PHP ส่งคืนโค้ดฉัน = 200 แต่ฉันไม่เห็นผลลัพธ์ มันไม่เคยถูกเรียกเพราะฉันพยายามที่จะเพิ่ม file_put_contents ที่นั่นและมันไม่เคยถูกเรียกโดย nginx

วันนี้ฉันใช้ Ubuntu 12.04 อัพเกรดอย่างเต็มที่


เนื้อหาของ/var/log/nginx/nginx-errors.com.logคืออะไร?
samiam

ดูว่าสิ่งนี้เกี่ยวข้องหรือไม่: bbs.archlinux.org/viewtopic.php?id=101750
mkc

ฉันมีปัญหาที่คล้ายกัน nginx กำลังประมวลผลหน้าครึ่งทางแล้วหยุด ไม่มีข้อผิดพลาดในการบันทึก nginx ฉันแก้ไขโดยการเปลี่ยนบัฟเฟอร์ nginx fastcgi ดูstackoverflow.com/a/43294078/1008916
Mugoma J. Okomba

คำตอบ:


16

นี้เพื่อ Q & A เสียงเหมือนมันอาจจะเป็นปัญหาของคุณหัวข้อ: Nginx แสดงหน้า

locationบทของคุณควรมีลักษณะเช่นนี้:

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;
}

fastcgi_paramคุณต้องให้ความสนใจเป็นพิเศษกับเส้นทางไปยังสคริปต์ที่คุณกำลังอ้างอิงสำหรับ

อ้างอิง


ใช่นั่นเป็นความผิดของฉัน ฉันได้เพิ่มบรรทัด: "include fastcgi_params;" ไปยังสถานที่และตอนนี้มันใช้งานได้!
JavaRunner

@JavaRunner - ดีใจที่ทราบว่าปัญหาของคุณได้รับการแก้ไขแล้ว!
slm

13

สิ่งนี้อาจเป็นประโยชน์กับผู้อื่นที่ประสบปัญหานี้

คุณยังสามารถเพิ่มไฟล์ nginx conf ของคุณfastcgi_paramsในบรรทัดต่อไปนี้ดังนั้นคุณไม่จำเป็นต้องระบุพา ธ ไปยังตัวแปรSCRIPT_FILENAME

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

สิ่งนี้มีประโยชน์มากเป็นพิเศษเมื่อคุณมีโฮสต์เสมือนมากมาย


ขอบคุณนี้ดีกว่ารวมถึงเส้นทางที่แตกต่างตลอดเวลา
krdx

1
สิ่งนี้แก้ไขปัญหาของฉันบน Ubuntu 14.04 lts ติดตั้งใหม่ซึ่ง nginx มาจากที่เก็บ ขอบคุณ!
Arda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.