Saya menggunakan shared hosting dan memiliki Cpanel, Apache, PHP dijalankan oleh fastcgi. Di mana PHP menyimpan log kesalahan?
Apakah ada cara lain saya dapat menemukan log kesalahan pada lingkungan hosting bersama daripada harus melalui seluruh struktur situs untuk mencari file error_log?
Saya memiliki akses ke php.ini
(Saya menggunakan PHP versi 5.2.16).
error-handling
php
PHPLOVER
sumber
sumber
/var/log/httpd/error_log
atau/var/log/apache2/error.log
. File-file ini dimiliki oleh root, jadi Anda harus melakukan root atau menggunakannyasudo
untuk melihatnya, atau membacanya.php --info | grep error
php --info | findstr /r /c:"error_log"
untuk melihat di mana file log itu.Jawaban:
PHP menyimpan log kesalahan
/var/log/apache2
jika PHP adalah modul apache2. Host bersama sering menyimpan file log dalam/log
subfolder direktori root Anda . Tetapi ... jika Anda memiliki akses kephp.ini
file, Anda dapat melakukan ini:Menurut komentar rinogo : Jika Anda menggunakan cPanel, file master log yang mungkin Anda cari disimpan (secara default) di
Jika semuanya gagal, Anda dapat memeriksa lokasi file log menggunakan
sumber
/usr/local/apache/logs/error_log
<?php phpinfo(); ?>
untuk mengonfirmasi jalurCoba
phpinfo()
dan periksa "error_log"sumber
echo ini_get('error_log');
?error_reporting(E_ALL|E_STRICT);
se.php.net/manual/en/function.error-reporting.phpLinux
Terminal akan menampilkan lokasi log kesalahan.
Windows
Prompt perintah akan menampilkan lokasi log kesalahan
Untuk mengatur lokasi log
Buka
php.ini
dan tambahkan baris berikut:Terima kasih @chelmertez , @Boom untuk ini (komentar pada pertanyaan).
sumber
php -info
output apa pun? Anda harus memastikan bahwaphp
sebenarnya memanggil PHP untuk menjalankan ...php.ini
, dan mengaturerror_reporting
keE_ALL & ~E_DEPRECATED & ~E_STRICT
, atau kesalahan apa pun yang ingin Anda lihat, kemudian mengaturerror_log
ke path ke direktori di mana Anda ingin kesalahan Anda dicatat. (Catatan: ini bukan path lengkap ke file, hanya ke direktori.)php --info | grep log
mengarahkan saya ke / var / www / log di mana log terbaru berada.sudo /etc/init.d/apache2 restart
Pada lingkungan LAMP kesalahan PHP default diarahkan ke file di bawah ini.
Semua log akses berada di bawah:
sumber
Bagaimana menemukan log kesalahan PHP Anda di Linux:
Cara lain yang setara:
sumber
Tampaknya secara default php tidak mencatat kesalahan di mana pun,
error_log
kunci di php.ini dikomentari di semua instalasi yang pernah saya lihat.Umumnya saya:
locate php.ini
.Cari file-file ini untuk
error_reporting
nilainya;Yang harus diatur untuk penggabungan level log php apa pun sudah cukup untuk Anda. ,
Misalnya:
E_ALL & ~E_DEPRECATED & ~E_STRICT
Periksa
error_log
nilai untuk memastikannya menunjuk ke tempat yang sebenarnya dan tidak dikomentari.Nilai default tidak memberikan path lengkap, hanya nama file, saya tidak tahu di mana path ini diputuskan secara normal. Mungkin
/var/log/
.sumber
Anda harus menggunakan jalur absolut ketika mengatur variabel error_log dalam file php.ini Anda, jika tidak, log kesalahan akan disimpan sesuai dengan jalur relatif Anda.
Solusi lain adalah menulis skrip sederhana yang akan mencantumkan semua file log kesalahan dari pohon direktori.
sumber
Bisa juga begitu
/var/log/apache2/error.log
jika Anda berada di mesin hitung google.Dan Anda dapat melihat ekor seperti ini:
sumber
Jika Anda telah membangun Apache dan PHP dari sumber, maka log kesalahan secara default dihasilkan pada Anda
${Apache install dir}/logs/error_log
yaitu umumnya/usr/local/apache2/logs/error_log
. Lain, jika Anda telah menginstalnya dari repositori, Anda akan menemukannya di/var/log/apache2/error_log
. Anda dapat mengatur path di Andaphp.ini
juga dan memverifikasinya dengan memohonphpinfo()
.sumber
Cara terbaik adalah dengan melihat file httpd.conf Anda dan melihat defaultnya. Itu juga bisa diganti oleh host virtual spesifik Anda. Saya mulai dengan melihat
/etc/httpd/conf/httpd.conf
atau/etc/apache2/httpd.conf
mencari error_log. Itu bisa didaftar sebagai / var / log / httpd / error_log atau/var/log/apache2/error_log
tetapi mungkin juga terdaftar sebagai sederhanalogs/error_log
.Dalam hal ini, ini adalah jalur relatif, yang berarti akan berada di bawah
/etc/httpd/logs/error_log
. Jika Anda masih tidak dapat menemukannya, periksa bagian bawah file httpd.conf Anda dan lihat di mana host virtual Anda disertakan. Mungkin di /etc/httpd/conf.d/<- sebagai "lain" atau "ekstra". Tuan rumah virtual Anda bisa menimpanya kemudian dengan ErrorLog "/ path / to / error_log".sumber
Saat mengkonfigurasi file log kesalahan Anda di php.ini, Anda dapat menggunakan jalur absolut atau jalur relatif. Jalur relatif akan diselesaikan berdasarkan lokasi skrip penghasil, dan Anda akan mendapatkan file log di setiap direktori tempat skrip Anda masuk. Jika Anda ingin semua pesan kesalahan masuk ke file yang sama, gunakan jalur absolut untuk berkas.
Lihat lebih lanjut di sini: http://www.php.net/manual/en/ref.errorfunc.php#53025
sumber
NGINX biasanya menyimpannya di /var/log/nginx/error.log atau access.log. (Pada Ubuntu dalam hal apa pun)
sumber
Ini sangat membantu. dikomentari oleh sja pada pertanyaan. jadi saya memasukkannya sebagai jawaban.
sumber
Jika Anda menggunakan log php5-fpm default harus di bawah
sumber
di mana pun Anda menginginkannya, jika Anda menyetelnya, panggilan fungsi Anda: error_log ($ errorMessageforLog. "\ n", 4, 'somePath / SomeFileName.som');
sumber
Cari file httpd.conf
ErrorLog
dengan menjalankannyacat <file location> | grep ErrorLog
di baris perintah. Sebagai contoh:Keluaran:
Temukan baris yang dimulai dengan
ErrorLog
dan ada jawaban Anda.Catatan: Untuk host virtual, Anda dapat mengedit file host virtual
httpd-vhosts.conf
untuk menentukan lokasi file log yang berbeda.sumber
Log galat cPanel berada di:
Secara default, log Apche berada di dalam:
atau
Jika ada yang menggunakan lokasi log khusus maka Anda dapat memeriksanya dengan menjalankan perintah ini:
Jika Anda mendapatkan kesalahan bahwa direktori apache2 tidak ada maka Anda dapat menjalankan perintah ini untuk menemukan lokasi yang benar dengan:
atau
sumber
sumber
Anda berada di lingkungan berbagi dan tidak dapat menemukan log kesalahan, selalu periksa apakah cPanel memiliki opsi Kesalahan pada dasbor cPanel Anda. Jika Anda tidak dapat menemukan log kesalahan, maka Anda dapat menemukannya di sana.
Pada bilah pencarian cPanel, cari Kesalahan, itu akan menampilkan Halaman Kesalahan yang pada dasarnya daftar halaman kesalahan http yang berbeda dan Kesalahan lainnya adalah di mana log kesalahan ditampilkan.
Tempat lain untuk melihat lingkungan bersama: / home / yourusername / logs / home / yourusername / public_html / error_log
sumber
sesuatu seperti ini :
atau
atau
sumber
Wordpress
Wordpress akan mengarahkan
error_log()
pesan ke/wp-content/debug.log
kapanWP_DEBUG_LOG
disetel ke true.Lihat Dokumentasi Wordpress untuk WP_DEBUG_LOG
sumber