Mengatasi open_basedir restriction in effect
Pada pembahasan seri PHP kali ini kita akan membahas masalah open_basedir restriction in effect. Masalah ini umumnya terjadi pada server hosting dan belum pernah menemukan di localhost.
open_basedir sendiri adalah fitur keamanan PHP yang memungkinkan kita menentukan direktori yang dapat diakses oleh skrip PHP. Dengan kata lain, kita dapat menggunakannya untuk membatasi skrip PHP mengakses file di luar jalur open_basedir. Jika Anda adalah pemilik situs web wordpress, Anda biasanya dapat menggunakan PHP open_dir di direktori instalasi wordpress untuk:
- Mencegah skrip PHP mengakses file sensitif di luar direktori, termasuk file sistem dan file situs web lain yang dihosting di server.
- Melindungi server dari perangkat lunak berbahaya seperti virus dan malware lain yang mengeksploitasi akses direktori.
Pada kasus yang saya alami adalah pada projek Codeigniter saya mengatur session ke path lokal, bukan ke database. Ketika mencoba mengakses web dan mengakses path yang menjadi folder untuk session, maka web akan memunculkan kesalahan PHP error : "open_basedir restriction in effect" File(/) is not within the allowed path(s):
Dalam contoh kasus ini saya asumsikan path yang terkena restriction adalah /var/lib/php/session. Maka kita akan tambahkan path tersebut ke konfigurasi open_basedir di PHP
Mengatasi open_basedir restriction di Hosting cPanel
1. Buka cPanel kemudian pilih menu Select PHP Version.2. Pilih pada tab Options kemudian pada kolom open_basedir isikan path yang akan diizinkan. Contohnya /var/lib/php/session.
Mengatasi open_basedir restriction di Hosting Plesk
1. Akses hosting plesk pilih Website & Domains. Kemudian pilih salah satu website atau domain dari daftar yang akan kita konfig. Selanjutnya pilih menu PHP .2. Pada kolom open base_dir kita akan menemukan path default seperti ini :
{DOCROOT}{/}{:}{TMP}{/} . Kemudian silahkan tambahkan path yang mengakibatkan error open_basedir restriction in effect. Untuk menambahkan path baru pisahkan menggunakan tanda {:} . Sehingga akan menjadi seperti ini :
{DOCROOT}{/}{:}{TMP}{/}{:}/var/lib/php/session. Setelah itu klik Apply kemudian OK.