![]() |
| White Screen of Death. Photo by Vie Studio / Pexels |
Pada kesempatan kali ini, saya akan membagikan pengalaman saat pertama kali menjalankan aplikasi website saya di laptop dengan sistem operasi Debian. Mula-mula saya menyalin tautan proyek gitlab saja dari perambaan (browser), dan tempel (paste) di terminal dengan perintah
git clone <link project>.
Setelah melakukan sedikit penyesuaian dan konfigurasi, saya membuka proyek tersebut di perambaan. Selanjutnya yang terjadi adalah pengalaman ini.
White Screen of Death
Proyek website saya hanya menampilkan layar putih tanpa peringatan atau pemberitahuan apapun. Tak ada ide bagaimana menyelesaikan galat ini, saya berselancar di internet untuk mencari solusi. Sudah sejam saya berselancar, tidak ada satupun hasil. Saya mencoba mengecek konfigurasi virtualhost yang berada di direktori
/etc/apache2/sites-available/<direktori situs>.conf
Terlihat disana ada dua baris konfigurasi untuk melihat log galat pada website yang dinaungi oleh file konfigurasi ini. Berikut adalah dua baris konfigurasi yang saya temukan dan saya harapkan menjadi jalan keluar dari White Screen of Death aplikasi saya.
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Baris pertama adalah langkah yang saya ambil. Saya segera mengecek ke direktori /var/log/apache2/logs/error.log menggunakan sudo yaa. Berikut perintahnya.
cat /var/log/apache2/logs/error.log
Dari hasil melihat file error.log, saya mengamati baris terakhir dari file tersebut. Dan saya menganggap inilah masalah utama kenapa website saya white screen tidak menampilkan apapun. Berikut adalah baris galat yang saya maksud :
[Thu Jul 25 13:11:58.428446 2024] [proxy_fcgi:error] [pid 14678:tid 14678] [client 127.0.0.1:56366] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught mysqli_sql_exception: Incorrect integer value: '' for column 'id' at row 1 in /var/www/tape_management/public_html/tape_management/sources/login_success.php:33\nStack trace:\n#0 /var/www/tape_management/public_html/tape_management/sources/login_success.php(33): mysqli_query()\n#1 {main}\n thrown in /var/www/tape_management/public_html/tape_management/sources/login_success.php on line 33', referer: http://localhost/tape_management/login.html
Saya mengecek file yang dimaksud pada log error tersebut. Saya buka text editor dan menuju line atau baris kode yang dimaksud.
Saya agak bingung karena di 3 komputer lain, saya mencoba dan aplikasi saya berjalan normal, tapi tidak di laptop linux saya. Setelah kembali berselancar ke internet untuk mendapatkan jawaban, saya mendapat solusinya dan berhasil!!!
The solution is to replace the (' ') in sql query statement, to (NULL). And then the error has gone.
Diatas adalah solusi yang saya ambil dan saya coba. Ya, ternyata ada masalah di penulisan query insert. Dimana, query untuk mengisi field id yang mempunyai pilihan Extra AUTO INCREMENT adalah hanya dua tanda petik (' ') sementara yang diinginkan oleh sistem dilaptop linux saya adalah (null). Jadi solusinya adalah mengganti statement query dari yang sebelumnya (' ') menjadi (null). Galat teratasi, dan data input akan masuk ke basis data, dan kemudian mendapatkan id AUTO INCREMENT secara otomatis.
Kesimpulan
Dari hasil diatas, dapat diketahui bahwa terkadang, statement query SQL yang lancar berjalan di satu komputer, di komputer yang lain bisa saja mendapati galat yang berbeda dari biasanya. Yang dapat kita lakukan adalah mencari akar masalahnya, yaitu dari error.log atau cara lain yaitu debug, dan berusaha mencari cara terbaik untuk menyelesaikan galat tersebut.
