Nginx + PHP-FPM menghasilkan 502 gateway buruk bukan kesalahan fatal?

11

Saat ini saya sedang menguji Symfony2 dengan Nginx dan PHP-FPM. Saya juga menggunakan Xdebug.

Symfony2 hadir dengan bundel Demo, saya ingin menguji penanganan baru kesalahan fatal yang datang dengan Symfony 2.2.0 dengan membuat kesalahan sintaksis dalam bundel Acme / Demo. Mengapa saya melakukan itu, respons server adalah 502 gateway buruk.

Tetapi jika saya membuat kesalahan sintaks di file app_dev.php (jadi sebelum framework dipecat), maka Xdebug memberi tahu saya tentang kesalahan fatal.

Dan yang mengejutkan, jika saya memperbaiki kesalahan ketik itu, kemudian membuat kembali kesalahan sintaks dalam bundel Acme / Demo, maka pengendali kesalahan Symfony muncul seperti yang diharapkan. Dan akhirnya jika memperbaiki semua kesalahan ketik (halaman berfungsi) kemudian kembali membuat lagi kesalahan ketik yang sama (lagi di Acme / Bundle), saya mendapatkan gateway yang buruk.

Apakah Anda punya petunjuk tentang ini?

jchatard
sumber
Perubahan apapun? Saya memiliki masalah yang sama
Kevin Robatel
Di sini juga untuk pembaruan
Zaki Aziz
Baris apa yang muncul di nginx error.log Anda saat Anda mendapatkan kesalahan gateway yang buruk? Ini 90% salah menunjuk ke soket PHP-FPM. Juga, dapatkah Anda menunjukkan kepada kami konfigurasi nginx Anda dan konfigurasi kolam PHP-FPM yang Anda gunakan?
Bert

Jawaban:

1

Ini terjadi pada saya kemarin. Ini adalah kesalahan yang dibagikan dari nginx ke php5-fpm ternyata layanan php-fpm telah dikonfigurasi untuk mendengarkan pada soket yang salah.

di /etc/php5/php-fpm.conf saya berubah menjadi:

dengarkan = /var/run/php5-fpm.sock

dan di semua / etc / nginx / pastikan fastcgi_pass unix: /var/run/php5-fpm.sock

HTH

Windsor
sumber
Tidak, konfigurasi saya berfungsi karena saya dapat menggunakan aplikasi. Ini hanya pada skenario spesifik ini, saya jelaskan.
jchatard
0

Anda dapat melacak masalah yang sebenarnya dengan memeriksa log nginx.

/var/log/nginx/sitename.error.log

502 adalah karena ada beberapa masalah dalam menghubungkan ke proses php-fpm. Log dapat memberi Anda detail lebih lanjut. Jika Anda ingin mengisolasi log, sebutkan error_log terpisah di bawah lokasi aplikasi php Anda, seperti

    location <name> {

    error_log /var/log/nginx/site_location.error.log;
  #  error_log /var/log/nginx/site_location.error.log debug;

    }

(jika nginx mencoba terhubung ke port / phpfpm / socket yang berbeda, Anda bisa mendapatkan jawaban dari ini)

Anto
sumber