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?


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


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)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.