php-fpm ส่งคืนการตอบกลับเปล่าไปยัง nginx


9

nginx กำลังเชื่อมต่อกับ php-fpm ผ่าน fastcgi โดยใช้มาตรฐาน/etc/nginx/fastcgi_paramsในบล็อกตำแหน่ง

เมื่อเชื่อมต่อกับ /.status (php-fpm.ini :: ping.path) จากบรรทัดคำสั่งด้วยcgi-fcgi -bindผลลัพธ์จะกลับมาตามที่คาดไว้ (ชุด X-Powered-By ชุดการตอบสนอง ฯลฯ )

เมื่อร้องขอด้วย nginx ผลลัพธ์จะกลับมาว่างเปล่า (ชุด X-Powered-By ไม่มีความยาวหรือเนื้อหา) nginx ส่งคืน 200 เนื่องจากได้รับการตอบกลับ "ถูกต้อง"

การเฝ้าดู tcpdump ฉันได้แยกคำขอให้เท่าเทียมกันในส่วนหัว FCGI ของพวกเขา (ลบด้วยตัวแปร env ที่เกี่ยวข้องกับผู้ใช้ที่ยังคงตั้งค่าโดยเชลล์)


ลองเปลี่ยนเป็นผู้ใช้ nginx รันและรันการทดสอบ cgi-fcgi -bind อีกครั้ง
Linux Nerd บาง

ฉันมักจะพลาดการปรับใช้ NRPE โดยการทดสอบพวกเขาเป็นราก ... คิดว่าคุณอาจทำแบบเดียวกัน
Linux Nerd บาง

คำตอบ:


11

มาตรฐานไฟล์ไม่ได้มีสายที่สำคัญสำหรับfactcgi_paramsSCRIPT_FILENAME

location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

เพิ่มและรีสตาร์ท nginx


4

คำถามของคุณค่อนข้างคลุมเครือ “ หน้าจอสีขาวแห่งความตาย” (WSOD) อาจถูกเรียกโดยสิ่งต่าง ๆ มากมาย แต่บางสิ่งที่ฉันทำถ้าฉันพบสิ่งนี้:

  • เปิดใช้งานสิ่งต่อไปนี้ในphp.ini:

    display_errors = 1
    display_startup_errors = 1
    error_log = /path/to/file
    error_reporting = -1 ; (the -1 activates absolutely everything)
    log_errors = 1
    
  • เปิดใช้งานในphp-fpm.conf:

    error_log = /path/to/file
    
  • เปิดใช้งานสำหรับการกำหนดค่าสระแต่ละ php-fpm:

    catch_workers_output = 1
    
  • ทำซ้ำคำขอของคุณและตรวจสอบบันทึกทั้งหมด (รวมบันทึกข้อผิดพลาด nginx)
  • เพิ่มระดับการบันทึก (เช่นดีบักบน nginx)

หากไม่มีสิ่งใดช่วยให้คุณสามารถระบุปัญหาได้โปรดโพสต์ข้อมูลระบบและการกำหนดค่าทั้งหมดของคุณ ไม่มีใครสามารถให้คำตอบที่ถูกต้องได้หากปราศจากสิ่งนั้น

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