De fout PHP "open_basedir restriction in effect" corrigeren op LWS Panel

Procédure

  

Betrokken dienst : gedeelde webhosting LWS Panel
Betrokken panel : LWS Panel
Niveau : gemiddeld

De fout open_basedir restriction in effect verschijnt wanneer een PHP-script probeert toegang te krijgen tot een bestand of map buiten de toegestane ruimte op uw hosting.

Deze kan met name optreden na de migratie van een site, door een oud pad dat in de configuratie is opgeslagen, een verkeerd geconfigureerde extensie of een aangepast script.

Voor u begint

Bewaar een kopie van het bestand voordat u het wijzigt. U moet ook beschikken over het volledige foutbericht om het geweigerde pad en het PHP-bestand dat aan de oorzaak ligt te identificeren.

Het foutbericht begrijpen

Het bericht kan er als volgt uitzien:

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

Het bevat verschillende nuttige informatie:

  • /home/ancien-hebergeur/public_html/config.php is het bestand dat het script [ADDRESS] ;
  • /var/www/exemple.com/htdocs/ komt overeen met de ruimte waarin de bestanden van uw site kunnen worden gebruikt ;
  • /var/www/exemple.com/htdocs/index.php is het script [PERSON_NAME] om het bestand te openen ;
  • line 24 geeft de betrokken regel in dit script aan.

In dit voorbeeld gebruikt de site nog steeds een pad van een oude hostingomgeving. PHP blokkeert daarom de toegang tot het bestand.

De fout terugvinden in de PHP-logboeken

Als uw site alleen een lege pagina of een 500-fout toont, raadpleeg dan de logboeken van de hosting:

  1. Open de tool Apache- / PHP-logs.
  2. Voer de actie opnieuw uit die het probleem op uw site veroorzaakt.
  3. Ververs de logboeken en zoek naar de regel met open_basedir restriction in effect.
  4. Noteer het geweigerde pad en het PHP-bestand dat aan het einde van het bericht wordt vermeld.

De meest recente regels bevinden zich doorgaans aan het einde van het logboek.

Het door de site gebruikte pad corrigeren

1. Controleer de werkelijke locatie van het bestand

Op LWS Panel worden de openbare bestanden van een site doorgaans in een map van dit type geplaatst:

/var/www/votre-domaine.fr/htdocs/

Vervang votre-domaine.fr door de betreffende domeinnaam.

Controleer vervolgens via de bestandsbeheerder of via FTP of het gezochte bestand [PERSON_NAME] in een van de submappen staat.

2. Zoek het oude pad terug

Het onjuiste pad kan zijn opgeslagen:

  • in een configuratiebestand ;
  • in een aangepast PHP-script ;
  • in de instellingen van een extensie of thema ;
  • in de configuratie van een cache-, import-, back-up- of tijdelijke-bestandenmap ;
  • in gegevens die na een migratie zijn behouden.

Zoek in de eerste plaats naar het kenmerkende deel van het oude pad, bijvoorbeeld:

/home/ancien-hebergeur/

Wijzig niet willekeurig interne bestanden van WordPress, PrestaShop of een andere toepassing. Begin met het controleren van de configuratie van de extensie of module die in het foutbericht wordt genoemd.

3. Vervang het onjuiste pad

Vervang het oude pad door het werkelijke pad van het bestand op uw LWS-hosting.

Bijvoorbeeld:

Ancien chemin :
/home/ancien-hebergeur/public_html/cache/

Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/

In een aangepast PHP-script is het vaak beter om het pad op te bouwen vanuit de map van het script in plaats van het volledige serverpad op te slaan.

Bijvoorbeeld:

require __DIR__ . '/config.php';

Deze schrijfwijze zorgt ervoor dat het script config.php in zijn eigen map opzoekt.

De instructie open_basedir kan niet worden gewijzigd of uitgeschakeld vanuit een bestand .user.ini op LWS Panel.

Deze beveiliging mag niet worden omzeild. U moet het door de site, het script of de extensie gebruikte pad corrigeren.

4. Leeg de cache van de toepassing

Leeg na het corrigeren van het pad de cache via de interface van uw CMS of toepassing.

Een oud pad kan in een cachebestand blijven opgeslagen, zelfs nadat de configuratie is gewijzigd.

Controleren of alles werkt

Voer precies opnieuw de actie uit die de fout veroorzaakte: open de betrokken pagina, verstuur het formulier of start de onderbroken handeling opnieuw.

Raadpleeg vervolgens opnieuw de PHP-logboeken. Er mag geen nieuwe regel open_basedir restriction in effect verschijnen.

De correctie is voltooid wanneer de betrokken pagina of functie opnieuw werkt en er geen nieuwe open_basedir-fout verschijnt in de PHP-logboeken.

Veelvoorkomende problemen

Ik zie alleen een 500-fout of een lege pagina

Het volledige bericht is waarschijnlijk opgeslagen in de PHP-logboeken. Open de tool Apache- / PHP-logs vanuit het LWS Panel en reproduceer vervolgens de fout voordat u het logboek ververst.

Het vermelde pad komt overeen met mijn vorige hostingprovider

Een absoluut pad is niet bijgewerkt tijdens de migratie. Zoek dit pad in de configuratiebestanden, de instellingen van extensies en de aangepaste scripts.

Vervang het door het huidige pad van uw site [ADDRESS] Panel.

Ik kan niet vinden waar het pad is opgeslagen

Kijk naar de naam van het PHP-bestand die aan het einde van het foutbericht wordt weergegeven. Daarmee kunt u vaak de betrokken toepassing, het thema, de extensie of het script identificeren.

Controleer voor een extensie eerst de instellingen voor cache, import, back-up of tijdelijke bestanden.

Het bestand staat in de map htdocs, [PERSON_NAME] blijft doorgaan

Controleer of het door het script gebruikte pad exact overeenkomt met de werkelijke locatie van het bestand.

Een symbolische link kan ook lijken te verwijzen naar een bestand op de site terwijl PHP naar een locatie buiten de toegestane ruimte wordt gestuurd. Vervang in dat geval de link door een directe toegang tot een bestand dat zich in de map van de site bevindt.

De fout keert terug na de wijziging

Leeg de cache van uw toepassing en reproduceer vervolgens het probleem. Controleer ook of het pad niet op meerdere plaatsen is opgeslagen.

help.lws.net/a/765
Was dit artikel nuttig?

Ja

Geen

19 661 keer gelezen

Bedankt! Stel gerust vragen over onze documentatie als u meer informatie wilt, en help ons die te verbeteren.

Vergelijkbare artikelen

Een vraag over dit artikel?

Stel ze aan het LWS-team en de community. Het antwoord wordt na moderatie gepubliceerd.

Stel een vraag aan het LWS-team en de gemeenschap

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.