Saya baru saja melakukan upgrade server saya ke Fedora 17 dan menggabungkan beberapa file konfigurasi yang .rpmnew
menjadi yang ada. Saya telah berhasil mencatat kesalahan php saya di file log yang terpisah dengan menjaga yang berikut ini di php.ini
:
log_errors = On
error_log = /var/log/php-errors.log
Saya tidak yakin mengapa kesalahan dicatat /var/log/httpd/error_log
setelah pembaruan meskipun mempertahankan pengaturan di atas.
Juga,
$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log
menunjukkan bahwa apache memiliki file log kesalahan php.
Apa yang bisa menyebabkan kesalahan PHP untuk login ke file log kesalahan apache?
php
apache-http-server
error-logging
Pertanyaan Melimpah
sumber
sumber
phpinfo()
, itu menunjukkan file config yang dimuat menjadi /etc/php.ini, yang benar./var/log/php-errors.log
ke 666, jika pengguna / grup tidak mengatur bagaimana Anda berpikir mereka?Jawaban:
Saya pikir di sini hanya kesalahan umum Apache yang terlihat di
/var/log/httpd/error_log
.Saya akan memasukkan panggilan ke
error_log('test');
dalam beberapa logika PHP yang diketahui ditafsirkan ketika beberapa halaman tertentu di-refresh, dan jika itu tidak terlihat/var/log/php-errors.log
maka saya menduga bahwa versi yang ditingkatkan memiliki semacam konfigurasi atau skema izin yang berbeda. membuat konfigurasi lama berhenti bekerja.Saya akan merekomendasikan melalui bagian 'Penanganan kesalahan dan masuk'
/etc/php/php.ini
, dan memeriksa nilai yang tepat untuk arahan lain. Arahanerror_reporting
harus diatur keE_ALL
atauE_ALL & ~E_DEPRECATED & ~E_STRICT
. Arahanlog_errors
seharusnyaOn
.Jika hanya nama file (tetapi tidak ada jalur) yang ditentukan
error_log
, maka file tersebut akan muncul di direktori yang sama dengan skrip PHP yang memanggilerror_log(...)
.Saya juga merekomendasikan
/tmp/php_error_log
untuk menentukanerror_log
, menyegarkan halaman, dan kemudianls /tmp
untuk melihat apakah file itu ada.Jika file tidak ada, login sebagai root, dan lakukan pencarian untuk nama file di seluruh sistem file jadi lihat di mana itu berakhir.
Secara umum, konfigurasi yang tepat untuk membuat log kesalahan PHP bekerja di direktori tertentu berubah di berbagai versi Apache, PHP, dan berbagai distro.
Saya dapat mengatakan bahwa pada Arch Linux dengan Apache 2.4, PHP 5.5.11 dan systemd versi 212-1 konfigurasi di atas akan membuat log kesalahan PHP berakhir di suatu tempat yang mirip dengan
/tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.sumber