Cara menggunakan show error php htaccess

Dalam artikel saya sebelumnya tentang mencatat kesalahan PHP, Cara Mengaktifkan Logging Kesalahan PHP melalui htaccess, kami mengamati tiga aspek mendasar untuk mencegah, melestarikan, dan melindungi kesalahan PHP situs Anda

Cegah tampilan publik dari kesalahan PHP melalui htaccess

# supress php errors php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0

Pertahankan (catat) kesalahan PHP situs Anda melalui htaccess

# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log_

Lindungi log kesalahan PHP situs Anda melalui htaccess

# prevent access to PHP error log <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>

Sekarang, dalam artikel ini, kita akan mengeksplorasi operasi1 ini secara lebih mendalam, menyediakan fungsionalitas tambahan, dan mengkaji berbagai implikasi. Pertama kita akan mengeksplorasi penanganan kesalahan PHP untuk lingkungan produksi (mis. e. , untuk situs web dan aplikasi yang online, aktif, dan publik), maka kami akan mempertimbangkan penanganan kesalahan untuk lingkungan pengembangan (mis. e. , untuk proyek yang sedang dalam pengembangan, pengujian, pribadi, dll. )

Mengontrol tingkat pelaporan kesalahan PHP

Dengan menggunakan htaccess, dimungkinkan untuk mengatur tingkat pelaporan kesalahan agar sesuai dengan kebutuhan khusus Anda. Format umum untuk mengontrol tingkat kesalahan PHP adalah sebagai berikut

# general directive for setting php error level php_value error_reporting integer

Ada beberapa nilai umum yang digunakan untuk "bilangan bulat", antara lain

  • Pelaporan kesalahan lengkap — untuk menyelesaikan pencatatan kesalahan PHP, gunakan nilai bilangan bulat pelaporan kesalahan “8191”, yang akan mengaktifkan pencatatan semua hal kecuali pemberitahuan run-time2
  • Pelaporan kesalahan Zend — untuk merekam peringatan waktu kompilasi fatal dan non-fatal yang dihasilkan oleh mesin skrip Zend, gunakan nilai bilangan bulat pelaporan kesalahan “# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log0”
  • Pelaporan kesalahan dasar — ​​untuk merekam pemberitahuan run-time, kesalahan penguraian waktu kompilasi, serta kesalahan dan peringatan run-time, gunakan "# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log1" untuk nilai integer pelaporan kesalahan
  • Pelaporan kesalahan minimal — untuk merekam hanya kesalahan run-time yang fatal, gunakan nilai bilangan bulat pelaporan kesalahan "# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log2", yang akan mengaktifkan pencatatan kesalahan yang tidak dapat dipulihkan

Tentu saja, masih banyak lagi nilai pelaporan kesalahan yang tersedia, tergantung pada tujuan pencatatan kesalahan Anda. Untuk informasi lebih lanjut tentang mencatat error PHP, lihat halaman Error Handling and Logging Functions di php. bersih

Mengatur ukuran file maksimum untuk string kesalahan Anda

Menggunakan htaccess, Anda dapat menentukan ukuran maksimum untuk kesalahan PHP Anda. Ini mengontrol ukuran setiap kesalahan yang dicatat, bukan ukuran file secara keseluruhan. Berikut sintaks umumnya

# general directive for setting max error size log_errors_max_len integer

Di sini, "bilangan bulat" mewakili ukuran maksimum setiap string kesalahan yang direkam yang diukur dalam byte. Nilai defaultnya adalah “# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log_3” (mis. e. , 1 kilobyte). Untuk melepaskan kekuatan logging Anda sepenuhnya, Anda dapat menggunakan nilai nol, "# enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log4", untuk menunjukkan "tidak ada maksimum" dan dengan demikian menghapus semua batasan. Perhatikan bahwa nilai ini juga diterapkan pada kesalahan yang ditampilkan saat diaktifkan (mis. g. , selama pengembangan)

Nonaktifkan pencatatan kesalahan berulang

Jika Anda ingat terakhir kali Anda memeriksa log kesalahan PHP yang sehat (atau sakit, tergantung pada sudut pandang Anda), Anda mungkin mengingat entri yang tak terhitung jumlahnya dari kesalahan yang hampir identik, di mana satu-satunya perbedaan untuk setiap baris adalah stempel waktu peristiwa tersebut. Jika Anda ingin menonaktifkan redundansi ini, letakkan kode berikut di file htaccess root proyek Anda

# disable repeated error logging php_flag ignore_repeated_errors on php_flag ignore_repeated_source on

Dengan adanya baris ini, kesalahan berulang tidak akan dicatat, meskipun berasal dari sumber atau lokasi yang berbeda. Jika Anda hanya ingin menonaktifkan kesalahan berulang dari sumber atau file yang sama, cukup beri komentar atau hapus baris terakhir. Sebaliknya, untuk memastikan bahwa file log Anda menyertakan semua kesalahan berulang, ubah kedua nilai # enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log5 ​​menjadi # enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log6

Menyatukan semuanya — Lingkungan Produksi

Setelah membahas beberapa cara berguna untuk menyesuaikan pengalaman pencatatan kesalahan PHP kita, mari kita selesaikan semuanya dengan strategi penanganan kesalahan berbasis htaccess yang solid untuk lingkungan produksi umum. Berikut adalah kode untuk file htaccess target Anda

# PHP error handling for production servers php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_flag log_errors on php_flag ignore_repeated_errors off php_flag ignore_repeated_source off php_flag report_memleaks on php_flag track_errors on php_value docref_root 0 php_value docref_ext 0 php_value error_log /home/path/public_html/domain/PHP_errors.log # [see footnote 3] # php_value error_reporting 999999999 php_value error_reporting -1 php_value log_errors_max_len 0 <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>

Atau, jika Anda mau, versi penjelasan dari kode yang sama, menggunakan komentar untuk menjelaskan setiap baris

# PHP error handling for production servers # disable display of startup errors php_flag display_startup_errors off # disable display of all other errors php_flag display_errors off # disable html markup of errors php_flag html_errors off # enable logging of errors php_flag log_errors on # disable ignoring of repeat errors php_flag ignore_repeated_errors off # disable ignoring of unique source errors php_flag ignore_repeated_source off # enable logging of php memory leaks php_flag report_memleaks on # preserve most recent error via php_errormsg php_flag track_errors on # disable formatting of error reference links php_value docref_root 0 # disable formatting of error reference links php_value docref_ext 0 # specify path to php error log php_value error_log /home/path/public_html/domain/PHP_errors.log # specify recording of all php errors # [see footnote 3] # php_value error_reporting 999999999 php_value error_reporting -1 # disable max error string length php_value log_errors_max_len 0 # protect error log by preventing public access <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>

Strategi penanganan kesalahan PHP ini ideal untuk lingkungan produksi umum. Singkatnya, kode ini mengamankan server Anda dengan menonaktifkan tampilan publik dari pesan kesalahan, namun juga mengaktifkan transparansi kesalahan lengkap untuk administrator melalui log kesalahan pribadi. Tentu saja, Anda mungkin ingin menyesuaikan kode ini agar sesuai dengan kebutuhan spesifik Anda. Seperti biasa, silakan bagikan pemikiran, ide, tip, dan trik Anda dengan sesama pembaca. Sekarang, mari kita lihat strategi penanganan kesalahan umum untuk lingkungan pengembangan

Menyatukan semuanya — Lingkungan Pengembangan

Selama pengembangan proyek, ketika akses publik ke proyek Anda tidak tersedia, Anda mungkin merasa bermanfaat untuk menangkap kesalahan PHP secara real time, di mana keadaan dari waktu ke waktu terus berkembang. Berikut adalah strategi penanganan kesalahan PHP berbasis htaccess umum untuk lingkungan pengembangan. Tempatkan kode ini di file htaccess target Anda

# PHP error handling for development servers php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on php_flag ignore_repeated_errors off php_flag ignore_repeated_source off php_flag report_memleaks on php_flag track_errors on php_value docref_root 0 php_value docref_ext 0 php_value error_log /home/path/public_html/domain/PHP_errors.log # [see footnote 3] # php_value error_reporting 999999999 php_value error_reporting -1 php_value log_errors_max_len 0 <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>

Untuk kode ini, kami akan mengabaikan penjelasan baris demi baris, karena mungkin diekstrapolasi dari bagian sebelumnya. Strategi penanganan kesalahan PHP ini sangat ideal untuk lingkungan pengembangan umum. Singkatnya, kode ini memungkinkan penanganan kesalahan waktu-nyata melalui tampilan pesan kesalahan secara publik, sekaligus mengaktifkan transparansi kesalahan yang lengkap untuk administrator melalui log kesalahan pribadi. Tentu saja, Anda mungkin ingin menyesuaikan kode ini agar sesuai dengan kebutuhan spesifik Anda. Seperti biasa, silakan bagikan pemikiran, ide, tip, dan trik Anda dengan sesama pembaca. Itu saja untuk artikel ini — sampai jumpa lagi

Postingan terbaru

LIHAT SEMUA