Procédure
Tjänst som berörs : delad webbhotellshosting LWS Panel
Panel som berörs : LWS Panel
Nivå : mellan
Felet open_basedir restriction in effect visas när ett PHP-skript försöker komma åt en fil eller mapp som ligger utanför det tillåtna utrymmet på ditt webbhotell.
Det kan särskilt uppstå efter migrering av en webbplats, på grund av en gammal sökväg som sparats i konfigurationen, ett felaktigt inställt tillägg eller ett anpassat skript.
Spara en kopia av filen innan du ändrar den. Du behöver också ha det fullständiga felmeddelandet för att kunna identifiera den nekade sökvägen och den PHP-fil som orsakar problemet.
Meddelandet kan se ut ungefär så här:
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 24Det innehåller flera användbara uppgifter:
/home/ancien-hebergeur/public_html/config.php är filen som skriptet försöker komma åt;/var/www/exemple.com/htdocs/ motsvarar det utrymme där webbplatsens filer får användas;/var/www/exemple.com/htdocs/index.php är skriptet som försökte öppna filen;line 24 anger den berörda raden i detta skript.I det här exemplet använder webbplatsen fortfarande en sökväg från ett tidigare webbhotell. PHP blockerar därför åtkomsten till filen.
Om din webbplats bara visar en tom sida eller ett 500-fel, kontrollera webbhotellets loggar:
open_basedir restriction in effect.De senaste raderna finns vanligtvis längst ner i loggen.
På LWS Panel placeras en webbplats offentliga filer vanligtvis i en katalog av den här typen:
/var/www/votre-domaine.fr/htdocs/Ersätt votre-domaine.fr med det berörda domännamnet.
Kontrollera sedan via filhanteraren eller via FTP att den sökta filen verkligen finns i denna katalog eller i någon av dess underkataloger.
Den felaktiga sökvägen kan vara sparad:
Sök i första hand efter den karakteristiska delen av den gamla sökvägen, till exempel:
/home/ancien-hebergeur/Ändra inte interna filer i WordPress, PrestaShop eller någon annan applikation på måfå. Börja med att kontrollera konfigurationen för det tillägg eller den modul som anges i felmeddelandet.
Ersätt den gamla sökvägen med den verkliga sökvägen till filen på ditt LWS-webbhotell.
Till exempel:
Ancien chemin :
/home/ancien-hebergeur/public_html/cache/
Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/I ett anpassat PHP-skript är det ofta bättre att bygga sökvägen utifrån skriptets mapp istället för att spara hela serversökvägen.
Till exempel:
require __DIR__ . '/config.php';Detta sätt gör att skriptet letar efter config.php i sin egen mapp.
Direktivet open_basedir kan inte ändras eller avaktiveras från en .user.ini-fil på LWS Panel.
Detta skydd får inte kringgås. Du måste rätta sökvägen som används av webbplatsen, skriptet eller tillägget.
När du har rättat sökvägen tömmer du cachen via gränssnittet i ditt CMS eller din applikation.
En gammal sökväg kan fortfarande vara sparad i en cachefil, även efter att konfigurationen ändrats.
Upprepa exakt den åtgärd som utlöste felet: öppna den berörda sidan, skicka formuläret eller starta om den avbrutna åtgärden.
Kontrollera sedan PHP-loggarna igen. Ingen ny rad med open_basedir restriction in effect får visas.
Åtgärden är klar när den berörda sidan eller funktionen fungerar igen och inget nytt open_basedir-fel visas i PHP-loggarna.
Jag ser bara ett 500-fel eller en tom sida
Det fullständiga meddelandet finns troligen sparat i PHP-loggarna. Öppna verktyget Apache / PHP-loggar från LWS Panel och upprepa sedan felet innan du uppdaterar loggen.
Den angivna sökvägen motsvarar mitt tidigare webbhotell
En absolut sökväg uppdaterades inte under migreringen. Sök efter denna sökväg i konfigurationsfilerna, tilläggens inställningar och i de anpassade skripten.
Ersätt den med den aktuella sökvägen till din webbplats på LWS Panel.
Jag hittar inte var sökvägen är sparad
Titta på namnet på PHP-filen som visas i slutet av felmeddelandet. Det hjälper ofta att identifiera vilken applikation, vilket tema, vilket tillägg eller vilket skript som berörs.
För ett tillägg, kontrollera först dess inställningar för cache, import, säkerhetskopiering eller temporära filer.
Filen finns i mappen htdocs, men felet kvarstår
Kontrollera att sökvägen som används av skriptet exakt motsvarar filens verkliga plats.
En symbolisk länk kan också verka peka mot en fil på webbplatsen men ändå leda PHP till en plats utanför det tillåtna utrymmet. I så fall, ersätt länken med direkt åtkomst till en fil som ligger i webbplatsens mapp.
Felet kommer tillbaka efter ändringen
Töm cacheminnet i din applikation och upprepa sedan problemet. Kontrollera också att sökvägen inte är sparad på flera ställen.
Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.