Log kesalahan php tidak berfungsi

Pencatatan kesalahan PHP untuk situs Anda adalah tingkat pencatatan opsional yang dapat diaktifkan untuk mencatat kesalahan yang terjadi dengan kode PHP. Ada beberapa alasan Anda dapat memilih untuk mengaktifkan pencatatan kesalahan PHP. Anda mungkin ingin mengaktifkan pencatatan kesalahan PHP jika Anda secara aktif mengembangkan situs Anda untuk membantu pemecahan masalah. Jika Anda mengalami kesalahan 'halaman putih kematian' yang ditakuti (kesalahan yang memuat halaman kosong dan tidak memberi tahu Anda tentang apa yang salah). Atau "500 kesalahan" yang tidak masuk ke log kesalahan Apache seperti kesalahan tingkat 'nyata' 500, maka Anda harus mengaktifkan pencatatan kesalahan PHP untuk situs Anda untuk menemukan kesalahan skrip. Melakukannya akan menyebabkan kesalahan PHP dicatat di lokasi yang Anda pilih sehingga Anda dapat menentukan apa yang menyebabkan kesalahan dan bekerja untuk memperbaikinya

Merencanakan Pengaturan Apa yang Akan Digunakan

Anda harus memutuskan pengaturan log apa yang perlu Anda atur sebelum mengaktifkan. Sebagian besar waktu, Anda hanya akan memilih agar kesalahan PHP dicatat ke log pribadi di lokasi yang Anda tentukan. Jika situs tidak aktif, Anda juga dapat memilih agar kesalahan ditampilkan di situs di browser. CATATAN. Menampilkan error PHP di situs aktif adalah masalah keamanan, jadi jangan aktifkan setelan ini di situs aktif. Berikut adalah pengaturan yang disarankan untuk situs langsung

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off

Setelan yang direkomendasikan untuk situs pengembangan yang tidak aktif ada di bawah

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_

Kedua contoh yang ditampilkan di atas tidak menyertakan jalur yang sebenarnya. Anda mungkin harus membuat file error_log, mengganti '/path/ke/docroot/error_log' dengan jalur yang tepat ke file. Saya biasanya menempatkan ini di public_html, dan kemudian juga membuat. aturan htaccess untuk mencegah akses tidak sah ke log ini. Lanjutkan dan tentukan pengaturan apa yang akan Anda gunakan

Membuat Log Kesalahan

Akses root

Untuk membuat file di bawah pengguna cPanel 'cp_user', Anda akan melakukan hal berikut sebagai root pengguna melalui SSH (root dokumen untuk sebagian besar domain utama yang dihosting cPanel adalah public_html)

  cd /home/cp_user/public_html
  touch error_log
  chown cp_user: error_log

Selain itu, pastikan bahwa log dapat ditulis oleh pengguna (izin 644 sudah cukup untuk sebagian besar sistem KnownHost). Lakukan hal berikut untuk melihat file

  ls -lah /home/cp_user/public_html/error_log

Izin harus dibaca sebagai berikut jika diatur ke 644

  -rw-r--r--
_

Akses Pengguna cPanel

Jika Anda tidak memiliki akses root dan perlu melakukan perubahan ini sebagai pengguna cPanel, ada beberapa cara untuk melakukannya. Anda dapat menggunakan Pengelola File cPanel, FTP, atau SSH jika pengguna cPanel memiliki akses SSH. Mari gunakan File Manager

Masuk ke akun cPanel pengguna Anda di URL berikut (menggantikan domainanda. tld dengan domain Anda yang sebenarnya)

https. //domainanda. tld/cpanel

Navigasi sebagai berikut

  cPanel >> Files >> File Manager

Klik Ikon Manajer File

Log kesalahan php tidak berfungsi

Jendela baru akan terbuka menampilkan sistem file. Di pojok kiri atas, Anda akan melihat ikon untuk menambahkan file dan direktori

Log kesalahan php tidak berfungsi

Klik tombol "+ File" untuk membuat file baru. Kotak dialog baru akan terbuka. Anda akan memasukkan detail file yang akan dibuat di sini

Log kesalahan php tidak berfungsi

Klik tombol untuk membuat file

Selanjutnya, Anda dapat menggunakan navigasi di paling kiri untuk mengubah ke direktori yang seharusnya berisi file untuk mengonfirmasi bahwa file tersebut memang dibuat dan memiliki izin yang sesuai.

Log kesalahan php tidak berfungsi

Cara Mengaktifkan Log Kesalahan PHP

Pertama, Anda perlu memutuskan apakah Anda harus mengaktifkan PHP error logging melalui php. file ini atau melalui. htaccess. Ini akan tergantung pada PHP Handler apa yang Anda gunakan. Untuk mengetahui PHP Handler apa yang Anda gunakan dengan server cPanel, jalankan perintah berikut sebagai pengguna root melalui SSH

  /usr/local/cpanel/bin/rebuild_phpconf --current
_

Jika Anda menggunakan beberapa versi PHP, Anda mungkin perlu menentukan versi PHP apa yang digunakan situs Anda untuk menentukan penangan PHP yang benar

Jika Anda kekurangan akses root, Anda dapat mengunggah file phpinfo ke situs Anda, lalu memeriksanya untuk menentukan PHP Handler Anda saat ini. Untuk melakukannya, login ke cPanel, arahkan ke File Manager, klik tombol untuk menambahkan file, beri nama file phpinfo. php, dan tambahkan konten berikut

  <?php phpinfo(); ?>

Sekarang, kunjungi phpinfo situs Anda. halaman php di browser

https. //situsmu. tld/phpinfo. php

Cari “Server API”. Jika Anda melihat “Apache 2. 0 Handler”, maka Anda menggunakan DSO. Jika Anda melihat “CGI/FastCGI” atau “CGI”, kemungkinan besar Anda menggunakan suPHP, CGI, atau FastCGI

Contoh. suPHP, CGI, FastCGI akan ditampilkan. "Server API" ada di dekat bagian atas halaman phpinfo

Log kesalahan php tidak berfungsi

Contoh. DSO sedang digunakan saat “Apache 2. 0 Handler” ditampilkan di sebelah “Server API” di halaman phpinfo

Log kesalahan php tidak berfungsi

suPHP

Jika Anda menggunakan suPHP, maka Anda ingin mengaktifkan logging melalui php. ini seperti yang ditunjukkan di bawah ini (perhatikan bahwa Anda ingin mengedit display_errors sesuai dengan itu)

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = off

Jika php. Ini dan file log kesalahan tidak ada, Anda ingin membuat keduanya dan pastikan untuk mengubah kepemilikan keduanya kepada pengguna. php. ini dapat dibuat dengan cara yang sama seperti error_log seperti yang ditunjukkan pada bagian sebelumnya. Jika kedua file ini sudah ada, maka Anda harus membuat cadangan masing-masing sebelum melakukan perubahan. Anda dapat membuat cadangan file-file ini menggunakan perintah cp sebagai pengguna root seperti yang ditunjukkan di bawah ini

  cp -a /path/to/file /path/to/file.backup
_

Perintah ini membuat salinan file dengan kepemilikan dan izin saat ini dengan '. cadangan’ ekstensi

Anda dapat melakukannya di Manajer File cPanel dengan terlebih dahulu memilih file untuk membuat cadangan, lalu klik ikon "Salin" di bilah alat. Masukkan nama file diikuti dengan '. bak’ saat diminta untuk lokasi penyalinan file

Log kesalahan php tidak berfungsi

Klik "Salin File" dan file akan disalin dengan nama baru di lokasi yang ditentukan

Setelah membuat salinan dari file error_log dan php. Ini, Anda dapat melanjutkan untuk mengeditnya sesuai kebutuhan. Karena Anda memiliki cadangan error_log, Anda dapat memutuskan untuk menghapusnya sebelum mulai menulis lagi. Jika demikian, Anda dapat melakukannya dengan perintah berikut sebagai pengguna root

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_0

Jika Anda menggunakan File Manager, cukup hapus dan buat ulang file tersebut

Setelah Anda mengedit php. Ini dengan perincian di atas yang sesuai dan buat log kesalahan, Anda akan mulai melihat kesalahan yang ditulis ke file segera setelah dipicu

DSO

Jika Anda menggunakan DSO, maka Anda ingin mengaktifkan logging melalui. htaccess seperti yang ditunjukkan di bawah ini menggunakan arahan php_flag dan php_value

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_1

Ini juga merupakan ide bagus untuk membuat cadangan file. htaccess jika ada sebelum melakukan perubahan. Anda dapat membuat cadangan file menggunakan perintah cp sebagai pengguna root seperti yang ditunjukkan di bawah ini

  cp -a /path/to/file /path/to/file.backup
_

Perintah ini membuat salinan file dengan kepemilikan dan izin saat ini dengan '. cadangan’ ekstensi

Anda dapat melakukannya juga di Manajer File cPanel dengan terlebih dahulu memilih file untuk membuat cadangan, lalu klik ikon "Salin" di bilah alat. Masukkan nama file diikuti dengan '. bak’ saat diminta untuk lokasi penyalinan file. Klik "Salin File" dan file akan disalin dengan nama baru di lokasi yang ditentukan. Kemudian Anda dapat melanjutkan untuk mengedit. htaccess dengan arahan error logging dicatat

Jika error_log sudah ada, Anda juga dapat membuat cadangannya, lalu menghapusnya dan membuatnya kembali dengan izin dan kepemilikan yang benar sehingga kosong. Untuk mengosongkan error_log sebagai root, Anda bisa menjalankan perintah ini

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_0

Segera setelah melakukan perubahan seperti itu, saya selalu melihat log kesalahan Apache dan memuat ulang situs (hanya untuk memastikan saya tidak merusak situs karena salah ketik atau kesalahan lainnya). Untuk melihat log kesalahan Apache, gunakan perintah berikut melalui SSH sebagai pengguna root

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_4

Jika ada kesalahan yang dibuat yang akan berdampak buruk pada situs, kesalahan tersebut akan dicatat di sini saat memuat ulang situs (ini bukan kejadian umum, tetapi selalu baik untuk memeriksanya)

Jika Anda tidak memiliki akses root, lanjutkan dan muat ulang situs untuk memastikannya tidak rusak setelah melakukan perubahan ini. Ingatlah untuk menghapus cache browser Anda atau gunakan browser baru agar cache browser tidak memengaruhi hasil

Terakhir, untuk menonaktifkan akses ke log kesalahan Anda, Anda dapat menambahkan yang berikut ini ke file. htaccess

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_5

Menguji Perubahan Anda

Anda mungkin ingin menguji dan memastikan bahwa log kesalahan Anda berfungsi seperti yang diinginkan, terutama jika Anda memecahkan masalah kesalahan yang hanya terjadi sebentar-sebentar dan Anda tidak dapat memicunya sesuai permintaan. Anda akan ingin memastikan bahwa log kesalahan mencatat kesalahan secara efektif sehingga Anda dapat merekam kesalahan saat terjadi berikutnya. Pertama, buat skrip PHP baru sebagai pengguna root dan berikan kepemilikan yang benar (ubah 'cp_user' menjadi pengguna cPanel Anda)

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_6

Edit file dengan konten berikut

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_7

Sekarang, perhatikan log kesalahan dan muat skrip Anda di browser

  log_errors = on
  error_log = /path/to/docroot/error_log
  display_errors = on
_8

Jika situs Anda adalah situs saya. tld, maka Anda akan mengunjungi situs saya. tld/error_logging_test. php di browser. Ini akan memicu kesalahan yang ditentukan dalam skrip untuk ditulis ke log kesalahan yang telah kami aktifkan. Anda sekarang akan melihat kesalahan muncul di log kesalahan jika pencatatan kesalahan berfungsi dengan benar

Anda dapat melakukan hal yang sama seperti pengguna cPanel menggunakan File Manager. Anda akan membuat file baru bernama “error_logging_test. php”, tambahkan konten di atas, dan simpan. Anda kemudian akan menguji skrip dengan mengunjungi situs saya. tld/error_logging_test. php di browser (menggantikan my-site. tld dengan domain Anda yang sebenarnya). Anda seharusnya sekarang dapat memeriksa error_log dan melihat apakah ada kesalahan yang dihasilkan dengan mengunjungi skrip. Jika demikian, maka pencatatan kesalahan berfungsi seperti yang diharapkan. Jika tidak, silakan buka tiket dukungan dan kami akan dengan senang hati membantu

Bagaimana cara mencatat semua kesalahan PHP ke file?

Tampilkan Semua Kesalahan PHP dengan Cepat . ini_set('display_errors', 1);

Ke mana perginya PHP error_log?

Lokasi file error log sendiri bisa diatur secara manual di php. file ini. Di server Windows, di IIS, mungkin seperti "'error_log = C. \log_files\php_errors. log '" di Linux mungkin nilai "'/var/log/php_errors.

Apa itu log kesalahan PHP?

Fungsi PHP error_log() . sends an error message to a log, to a file, or to a mail account.

Bagaimana cara menambahkan log di PHP?

Anda dapat mencatat peristiwa apa pun yang Anda pilih dengan secara eksplisit memanggil fungsi error_log() atau syslog() PHP dalam kode Anda . Fungsi-fungsi ini membuat log yang berisi string pesan yang Anda berikan. Fungsi syslog() akan menggunakan konfigurasi di rsyslog Anda. conf untuk menulis pesan log.