Bagaimana saya bisa mengetahui mengapa php5-fpm saya gagal untuk memulai?

10

saya mendapatkan batas waktu 504 gateway ketika saya mencoba untuk mencapai server saya cek kecil tidak menemukan log pada log php5-fpm, tetapi hanya untuk memastikan, saya mencoba untuk me-restart itu. ketika saya mencoba me-restart itu:

sudo service php5-fpm restart

saya mendapatkan [fail] tetapi ketika saya melakukannya

sudo service php5-fpm stop
sudo service php5-fpm start

Saya tidak mendapatkan kesalahan.

bagaimana saya bisa menyelidikinya jika tidak ada log? apa yang dapat saya?

Liad Livnat
sumber

Jawaban:

17

Apakah Anda memeriksa file error_log Anda untuk php-fpm ? Lokasi file tersebut harus dideklarasikan di php-fpm.conf Anda (dalam konfigurasi Ubuntu adalah /etc/php5/fpm/php-fpm.conf, file log adalah / var / log / php5-fpm / log), juga periksa log_level , jika dinonaktifkan (; log_level), harap aktifkan dan ubah ke debug . Setelah itu coba restart layanan php5-fpm dan periksa log Anda.

Anda juga dapat mencoba menjalankan php5-fpm dalam mode foreground:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Mungkin ini menunjukkan sesuatu yang menarik.

macet
sumber
1
Dalam kasus saya, perintah ini memulai php5-fpm sedangkan service php5-fpm starttidak. Terima kasih!
David Thomas
Davis, sepertinya itu bekerja untuk saya +1! Tapi .. macet memberi saya solusinya, saya menemukan beberapa kesalahan +1! Terima kasih semua!
Tenaciousd93
Jika Anda memulai FPM menggunakan pekerjaan pemula, maka log startup php-fpm akan ditulis ke / var / log / pemula /
Ashwin Date
Untuk penggunaan php7.0php-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar
4

Prosedur pemecahan masalah standar:

  • Periksa file log. Jika Anda tidak tahu di mana itu memeriksa konfigurasi atau untuk mengetahui dengan pasti menemukan pid ps aux | grep php-fpm, maka lakukan lsof -p $PID | grep log(hilangkan grep jika tidak menunjukkan apa-apa).
  • 99% dari file log waktu akan menunjukkan penyebabnya. Jika tidak, cari level logging di konfigurasi, naikkan dan coba lagi.
  • Mungkin itu berhenti secara instan dan Anda tidak bisa mendapatkan PID untuk memeriksa proses. Anda juga dapat mencoba memulai proses di latar depan, tetapi ini berarti mencari tahu saklar perintah mana yang perlu Anda gunakan. Biasanya Anda hanya perlu mengarahkannya ke konfigurasi yang ada.
  • Jika file log atau stdout / stderr (foreground output) tidak mengandung masukkan petunjuk, inilah saatnya untuk strace ... tapi itu adalah postingan lain.
Alex Forbes
sumber
+1 cara yang bagus untuk menemukan file log!
deweydb
3

Catatan ini membantu saya: https://bugs.launchpad.net/nginx/+bug/1366651

Dalam kasus saya, memperbarui ke nginx> 1.6.1 parameter yang dilewatkan ke php5-fpm terletak di fastcgi.conf bukan di fastcgi_params, menghasilkan PHP yang selalu mengembalikan 200 (ok), tetapi tidak pernah ada konten, karena SCRIPT_FILENAME tidak lagi disetel.

Saya harap ini juga membantu orang lain.

Sebastiaan van Doorn
sumber
2

Bagi saya, masalahnya adalah php-fpm.conffile saya tidak menggunakan nama file config default - namanya /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs php-fpm.conf)

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Saya mengganti nama file conf php-fpm.confdan itu memperbaiki masalah.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
David Thomas
sumber
0

Saya mengalami masalah ini tanpa file log kemudian memperhatikan bahwa saya mengakses URL melalui HTTPS alih-alih HTTP dan protokol itu belum diatur di Nginx sehingga PHP5-FPM tidak mendapatkan traffic.

Bisa membantu seseorang.

Dave Hilditch
sumber
0

Bisa terjadi bahwa pada dist-upgrade Ubuntu paket php5-fpm dihapus karena php 7 menggunakan php-fpm sebagai gantinya. coba jalankan ini di konsol:

php5-fpm

Jika belum ada, Anda mungkin sudah menggunakan php 7, jadi instal

apt-get install php-fpm

yang akan menginstal versi php7

rubo77
sumber