Notez cet article :
Cet article vous a été utile ?
Oui
Non
Vous avez noté 0 étoile(s)
Sommaire
Procédure
Service concerné : hébergement web mutualisé LWS Panel
Panel concerné : LWS Panel
Niveau : intermédiaire
L’erreur open_basedir restriction in effect apparaît lorsqu’un script PHP tente d’accéder à un fichier ou à un dossier situé en dehors de l’espace autorisé sur votre hébergement.
Elle peut notamment survenir après la migration d’un site, à cause d’un ancien chemin enregistré dans la configuration, d’une extension mal paramétrée ou d’un script personnalisé.
Conservez une copie du fichier avant de le modifier. Vous devez également disposer du message d’erreur complet afin d’identifier le chemin refusé et le fichier PHP à l’origine du problème.
Le message peut ressembler à cet exemple :
Warning: include(): open_basedir restriction in effect.
File(/home/ancien-hebergeur/public_html/config.php)
is not within the allowed path(s):
(/var/www/exemple.com/htdocs/:/tmp/)
in /var/www/exemple.com/htdocs/index.php on line 24
Il contient plusieurs informations utiles :
/home/ancien-hebergeur/public_html/config.php est le fichier auquel le script tente d’accéder ;/var/www/exemple.com/htdocs/ correspond à l’espace dans lequel les fichiers de votre site peuvent être utilisés ;/var/www/exemple.com/htdocs/index.php est le script ayant tenté d’ouvrir le fichier ;line 24 indique la ligne concernée dans ce script.Dans cet exemple, le site utilise encore un chemin provenant d’un ancien hébergement. PHP bloque donc l’accès au fichier.
Si votre site affiche uniquement une page blanche ou une erreur 500, consultez les journaux de l’hébergement :
open_basedir restriction in effect.Les lignes les plus récentes se trouvent généralement à la fin du journal.
Sur LWS Panel, les fichiers publics d’un site sont généralement placés dans un répertoire de ce type :
/var/www/votre-domaine.fr/htdocs/
Remplacez votre-domaine.fr par le nom de domaine concerné.
Vérifiez ensuite, depuis le gestionnaire de fichiers ou par FTP, que le fichier recherché se trouve bien dans ce répertoire ou dans l’un de ses sous-dossiers.
Le chemin incorrect peut être enregistré :
Recherchez en priorité la partie caractéristique de l’ancien chemin, par exemple :
/home/ancien-hebergeur/
Ne modifiez pas au hasard les fichiers internes de WordPress, PrestaShop ou d’une autre application. Commencez par vérifier la configuration de l’extension ou du module indiqué dans le message d’erreur.
Remplacez l’ancien chemin par le chemin réel du fichier sur votre hébergement LWS.
Par exemple :
Ancien chemin :
/home/ancien-hebergeur/public_html/cache/
Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/
Dans un script PHP personnalisé, il est souvent préférable de construire le chemin à partir du dossier du script plutôt que d’enregistrer le chemin complet du serveur.
Par exemple :
require __DIR__ . '/config.php';
Cette écriture permet au script de rechercher config.php dans son propre dossier.
La directive open_basedir ne peut pas être modifiée ou désactivée depuis un fichier .user.ini sur LWS Panel.
Cette protection ne doit pas être contournée. Vous devez corriger le chemin utilisé par le site, le script ou l’extension.
Après avoir corrigé le chemin, videz le cache depuis l’interface de votre CMS ou de votre application.
Un ancien chemin peut rester enregistré dans un fichier de cache, même après la modification de la configuration.
Reproduisez précisément l’action qui provoquait l’erreur : ouvrez la page concernée, envoyez le formulaire ou relancez l’opération interrompue.
Consultez ensuite une nouvelle fois les journaux PHP. Aucune nouvelle ligne open_basedir restriction in effect ne doit apparaître.
La correction est terminée lorsque la page ou la fonctionnalité concernée fonctionne à nouveau et qu’aucune nouvelle erreur open_basedir n’apparaît dans les journaux PHP.
Je vois uniquement une erreur 500 ou une page blanche
Le message complet est probablement enregistré dans les journaux PHP. Ouvrez l’outil Logs Apache / PHP depuis le LWS Panel, puis reproduisez l’erreur avant d’actualiser le journal.
Le chemin indiqué correspond à mon ancien hébergeur
Un chemin absolu n’a pas été mis à jour pendant la migration. Recherchez ce chemin dans les fichiers de configuration, les paramètres des extensions et les scripts personnalisés.
Remplacez-le par le chemin actuel de votre site sur LWS Panel.
Je ne trouve pas où le chemin est enregistré
Regardez le nom du fichier PHP affiché à la fin du message d’erreur. Il permet souvent d’identifier l’application, le thème, l’extension ou le script concerné.
Pour une extension, vérifiez d’abord ses réglages de cache, d’import, de sauvegarde ou de fichiers temporaires.
Le fichier se trouve dans le dossier htdocs, mais l’erreur continue
Vérifiez que le chemin utilisé par le script correspond exactement à l’emplacement réel du fichier.
Un lien symbolique peut également sembler pointer vers un fichier du site tout en dirigeant PHP vers un emplacement extérieur à l’espace autorisé. Dans ce cas, remplacez le lien par un accès direct à un fichier situé dans le dossier du site.
L’erreur revient après la modification
Videz le cache de votre application, puis reproduisez le problème. Vérifiez également que le chemin n’est pas enregistré à plusieurs endroits.
Notez cet article :
Cet article vous a été utile ?
Oui
Non
0mn de lecture
Cloudflare Error 524 : A timeout occured
3mn de lecture
Comment corriger une erreur 500 sur votre site avec LWS Panel
9mn de lecture
Comment corriger un codes d'erreurs HTTP ?
0mn de lecture
Erreur 404, c’est quoi, comment la corriger