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.
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 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.
Als uw site alleen een lege pagina of een 500-fout toont, raadpleeg dan de logboeken van de hosting:
open_basedir restriction in effect.De meest recente regels bevinden zich doorgaans aan het einde van het logboek.
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.
Het onjuiste pad kan zijn opgeslagen:
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.
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.
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.
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.
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.
Stel ze aan het LWS-team en de community. Het antwoord wordt na moderatie gepubliceerd.