Corriger l’erreur PHP "open_basedir restriction in effect" sur LWS Panel

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é.

Avant de commencer

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.

Comprendre le message d’erreur

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.

Retrouver l’erreur dans les journaux PHP

Si votre site affiche uniquement une page blanche ou une erreur 500, consultez les journaux de l’hébergement :

  1. Ouvrez l’outil Logs Apache / PHP.
  2. Reproduisez l’action qui provoque le problème sur votre site.
  3. Actualisez les journaux et recherchez la ligne contenant open_basedir restriction in effect.
  4. Notez le chemin refusé et le fichier PHP indiqué à la fin du message.

Les lignes les plus récentes se trouvent généralement à la fin du journal.

Corriger le chemin utilisé par le site

1. Vérifiez l’emplacement réel du fichier

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.

2. Retrouvez l’ancien chemin

Le chemin incorrect peut être enregistré :

  • dans un fichier de configuration ;
  • dans un script PHP personnalisé ;
  • dans les paramètres d’une extension ou d’un thème ;
  • dans la configuration d’un dossier de cache, d’import, de sauvegarde ou de fichiers temporaires ;
  • dans des données conservées après une migration.

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.

3. Remplacez le chemin incorrect

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.

4. Videz le cache de l’application

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.

Vérifier que tout fonctionne

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.

Problèmes fréquents

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 ?

Article utileOui

Article non utileNon

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Articles similaires

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


Questions sur cet article

Poser une question à l'équipe LWS et à sa communauté

RGPD : Responsable LWS-Ligne Web Services. Finalité : modération et publication publique de votre question, notification éventuelle d'une réponse. Base légale : consentement (art. 6.1.a RGPD). Conservation des emails : 90 jours après notification, 12 mois maximum sans réponse. Vous pouvez exercer vos droits via notre nos CGV - section RGPD.