Pengaruh Konfigurasi Safe_Mode on/off di PHP

Bagi developer aplikasi web yang menggunakan bahasa PHP, ada banyak pilihan bila menginginkan paket engine server yang terintegrasi dengan Apache dan MySQL, seperti WAMP dan XAMPP. Namun banyaknya paket yang ada ataupun kita install tersendiri antara ketiganya (Apache-PHP-MySQL) terkadang menjadi persoalan tersendiri, karena default setting dari masing-masing paket yang berbeda. Hal ini saya alami ketika aplikasi penjualan yang saya buat menggunakan PHP, dan mengeluarkan report berupa file excel tiba-tiba mengeluarkan report excel yang tertulis “…the script whose uid 1199 is not allowed to access /tmp…”, padahal sebelumnya normal saja.

 Setelah mencari kesana-kemari, mbah Google memberikan wangsit, bahwa kejadian tersebut dapat terjadi karena setting “safe_mode” pada kondisi “on” pada konfigurasi “php.ini” file. Apabila kita menggunakan local server, kita tinggal mencari file php.ini dan mengganti setting “safe_mode” menjadi “off” seperti pada gambar dibawah.

Persoalan menjadi sedikit berbeda ketika kita berada di server publik/hosting. Karena berbagai alasan, administrator server belum tentu bersedia mengganti konfigurasi tersebut menjadi sesuai seperti keinginan kita. Lalu bagaimana?

 Pada kasus yang saya alami, saya menggunakan xlsClass untuk membuat report berupa excel. Menurut mbah Google (lagi), hal ini terjadi karena server tidak mengijinkan script php untuk membuat file temporary di folder “/tmp”, maka yang bisa kita lakukan adalah :

  • buat folder “tmp” pada folder xlsClass, dan buatlah aksesnya menjadi writeable dan readable

  • buka file “OLEwriter.php” pada folder xlsClass, karena file ini yang berisi script yang memuat pembuatan folder /tmp.

  • Buang tanda “/” seperti tanda panah pada gambar dibawah. Ini akan membuat file temporary yang dibuat menuju folder temporary yang baru kita buat, dan report excel akan kembali normal.

Advertisements