PHP-CGI Mulai Melayani Halaman Kosong


8

PHP-CGI saya mulai melayani halaman kosong tanpa alasan yang jelas sampai saya memulai kembali proses.

Saya ingin tahu alasannya.

Sayangnya file konfigurasi "produksi" PHP tidak memiliki error_log secara default. Log kesalahan Nginx saya juga tidak menampilkan kesalahan yang berkaitan dengan PHP. Ini mungkin adalah kasus tanpa harapan, tetapi saya bertanya untuk berjaga-jaga.

Ini pengaturan saya

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1 dengan Suhosin-Patch 0.9.6.2 (cli) (dibangun: 23 Apr 2009 14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2 (ipv6) - pembungkus fastcgi dari lighttpd

Adakah ide yang mungkin menyebabkan kesalahan?

Memperbarui

Saya pikir saya sudah mengisolasi masalahnya. Saya telah menggunakan Monit untuk secara otomatis me-restart PHP setiap kali ia mulai kosong. Log kesalahan PHP saya kosong.

Tetapi saya menemukan bahwa jika saya menonaktifkan plugin Wordpress yang disebut WP-SuperCache, PHP saya berhenti disetel ulang setiap ~ 10 jam. Sejauh ini PHP saya sudah berjalan selama 3 hari berturut-turut. Adakah yang punya saran tentang ini?

Jawaban:


2

Supercache menghasilkan versi halaman cache penuh, serta melakukan caching internal lainnya, mungkin ada semacam masalah waktu dalam situasi beban tinggi. Saya akan memeriksa folder cache Anda untuk memastikannya tidak mengandung file kosong. Jika ya, Anda mungkin memiliki masalah penguncian file. Mengatasi masalah seperti itu mungkin rumit, dan mungkin akan mengharuskan Anda untuk membuka tiket bug, karena kemungkinan masalah dengan kode itu sendiri.


1

pernahkah Anda mencoba menghentikan layanan fcgi dan memulainya lagi sebagai ganti memulai kembali. Saya memiliki hal-hal aneh yang serupa terjadi saat me-restart fcgi


1
Masalahnya bukan dari memulai kembali. Itu hanya terjadi secara spontan dalam semalam ketika saya mendapat banyak pengunjung dari tempat sampah yang disebut Reddit.
Tidak diketahui

1

Periksa status respons permintaan Anda jika itu terjadi lagi (mis., Curl -i) dan jika statusnya tidak 200, periksa halaman kesalahan Anda (khususnya yang untuk nomor kesalahan yang ditampilkan) dan pastikan tidak atur ke redirect dengan cara yang dapat menyebabkan infinite loop.

Jika status responsnya 200, periksa apakah ada teks dalam respons selain header HTTP.


Saya kira saya harus melakukan itu, tapi saya sudah me-restart PHP sehingga orang bisa melihat halaman. Saya tidak melihat kesalahan di log server saya.
Tidak diketahui


1

Bukan jawaban, tetapi saran - ganti spawn-fcgi dengan php-fpm lebih dapat disesuaikan.

PS. mungkin Anda memiliki redirect halaman kesalahan 50x khusus di nginx.conf

UPD: hari ini saya mengalami masalah serupa ketika nginx + php mulai melayani halaman kosong. Penelitian saya menunjukkan bahwa ia mengirim halaman kosong apa pun yang dilemparkan oleh php. Mungkin itu semacam arahan php.ini untuk melayani kosong, bukan kesalahan. Saya harus memeriksa log dan lain-lain ... menghapus.

UPD2: Lihatlah php.ini Anda ada 2 parameter di dalamnya yang perlu Anda ubah untuk melihat kesalahan php:

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

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.