Bu hata, PHP’nin yalnızca belirli dizinlere erişmesine izin veren open_basedir direktifinin etkin olduğu durumlarda ortaya çıkar. Bu yazıda, bu hatanın nedenlerini ve nasıl çözülebileceğini adım adım anlatacağız.
open_basedir Hatasının Sebebi
open_basedir, PHP’nin belirli dizinlere erişimini kısıtlayan bir güvenlik özelliğidir. Bu özellik etkin olduğunda, PHP scriptlerinin sadece belirlenen dizinler içinde dosya işlemleri yapmasına izin verilir. Eğer bir script, bu dizinlerin dışında bir dosyaya erişmeye çalışırsa, “open_basedir restriction in effect” hatasıyla karşılaşılır.
Çözüm Adımları
1. CyberPanel’e Giriş Yapın
CyberPanel yönetim arayüzüne giriş yaparak, hatayı almanıza neden olan sitenin vhost (virtual host) dosyasını düzenlemeniz gerekmektedir.
2. PHP Versiyonunu Belirleyin
Kullandığınız PHP sürümünü belirleyin. CyberPanel’de birden fazla PHP sürümü yüklü olabilir, bu yüzden doğru sürüm için yapılandırmayı yapmanız önemlidir.
3. vhost Dosyasını Düzenleyin
vhost dosyasında phpIniOverride bölümünü bulun ve open_basedir ayarını güncelleyin. Aşağıdaki örneği kullanarak, PHP’nin erişimine izin verilen dizinleri belirleyin:
phpIniOverride {
php_admin_value open_basedir "/tmp:$VH_ROOT/public_html:/var/lib/lsphp/session/"
}
Subdomain için;
phpIniOverride {
php_admin_value open_basedir "/tmp:/home/siteadresi.com/sub.siteadresi.com:/var/lib/lsphp/session/"
}