Problème avec la fonction open_basedir

J’ai rencontré cette erreur à deux reprises en installant mes deux forums sur mon serveur à savoir ce joli message d’erreur:

[phpBB Debug] PHP Notice: in file /includes/functions.php on line 2387: file_exists() [function.file-exists]: open_basedir restriction in effect. File(.) is not within the allowed path(s): (/:/tmp/)

Comme je me suis fait avoir la première, j’ai galéré déjà plusieurs heures pour trouver la solution et malin que je suis, je ne me la suis pas noté et voilà que je galère à nouveau pour ce forum.

J’ai donc décidé par ce message de m’en faire un post-it qui pourrait servir à d’autres éventuellement.

L’erreur vient d’une restriction au niveau de la configuration de php sur le serveur qui limite l’accès de la fonction open_basedir sur certains répertoires.

Définition de la Master Value pour open_basedir: il faut modifier le fichier /etc/php.ini et indiquer mettre un point virgule devant open_basedir (je la fais courte pour résumé, plus de détails ici : http://php.net/manual/fr/ini.core.php).

Définition de la Local Value pour open_basedir: dans le dossier de configuration du nom de domaine (ex. /var/www/vhosts/megane3.fr/conf/), modifier (ou créer) le fichier vhost.conf et s’assurer d’y avoir les lignes suivantes (cf. http://apache.developpez.com/cours/virtual-host/ pour plus d’informations):

php_admin_value safe_mode off
php_admin_value open_basedir none

— NE CONCERNE PAS SERVEUR SOUS PLESK —

Une petite fonction qui va bien pour retrouver son http.conf car il faut inclure le nouveau fichier créé:

find / -name http.conf

Ligne à ajouter à la fin du fichier:

Include "/var/www/vhosts/megane3.fr/conf/vhost.conf"

Et hop, on n’oublie pas de redémarrer le service Apache :

/etc/init.d/httpd restart

— FIN —

Pour mon cas, une petite ligne de commande qui me reconfigure mon Plesk:

/usr/local/psa/admin/bin/websrvmng -a

Résultat final (un petit phpinfo(); ):

open_basedir Local Value = no value, Master Value = no value

Enjoy !

Laisser un commentaire