php-fpm mengembalikan respons kosong ke nginx

9

nginx terhubung ke php-fpm melalui fastcgi, menggunakan standar /etc/nginx/fastcgi_paramsdi blok lokasi.

Saat menghubungkan ke /.status (php-fpm.ini :: ping.path) dari baris perintah dengan cgi-fcgi -bind, hasilnya kembali seperti yang diharapkan (X-Powered-By set, badan respon, dll).

Saat meminta dengan nginx, hasilnya kembali kosong (X-Powered-By set, tanpa panjang tubuh atau konten). nginx mengembalikan 200, karena mendapat respons "valid".

Melihat tcpdump, saya telah mengisolasi permintaan untuk paritas dalam header FCGI mereka (dikurangi variabel env terkait pengguna masih ditetapkan oleh shell.)

David Souther
sumber
Coba ubah ke menjalankan nginx pengguna sebagai, dan jalankan kembali tes cgi-fcgi -bind.
Beberapa Nerd Linux
Saya selalu mengacaukan penyebaran NRPE dengan mengujinya sebagai root ... mengira Anda mungkin telah melakukan hal yang sama.
Beberapa Linux Nerd

Jawaban:

11

File standar factcgi_paramstidak mengandung baris kunci untuk SCRIPT_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;
}

Tambahkan dan mulai ulang nginx.

shukshin.ivan
sumber
4

Nah, pertanyaan Anda agak kabur. Apa yang disebut "layar putih kematian" (WSOD) mungkin dipicu oleh banyak hal. Tetapi beberapa hal yang saya lakukan jika saya menemukan ini:

  • Aktifkan yang berikut di Anda 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
    
  • Aktifkan di php-fpm.conf:

    error_log = /path/to/file
    
  • Aktifkan untuk setiap konfigurasi kumpulan php-fpm:

    catch_workers_output = 1
    
  • Ulangi permintaan Anda dan periksa semua log (termasuk nginx error log)
  • Tingkatkan tingkat logging (mis. Debug pada nginx)

Jika tidak ada yang membantu Anda untuk mengetahui masalah ini, silakan kirim informasi dan konfigurasi sistem lengkap Anda. Tidak ada yang bisa memberi Anda jawaban yang tepat tanpa itu.

Fleshgrinder
sumber