Korrigera PHP-felet "open_basedir restriction in effect" i LWS Panel

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.

Innan du börjar

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.

Förstå felmeddelandet

Meddelandet kan se ut ungefär så här:

Kod
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

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

Hitta felet i PHP-loggarna

Om din webbplats bara visar en tom sida eller ett 500-fel, kontrollera webbhotellets loggar:

  1. Öppna verktyget Apache / PHP-loggar.
  2. Upprepa den åtgärd som orsakar problemet på din webbplats.
  3. Uppdatera loggarna och leta efter raden som innehåller open_basedir restriction in effect.
  4. Notera den nekade sökvägen och den PHP-fil som anges i slutet av meddelandet.

De senaste raderna finns vanligtvis längst ner i loggen.

Rätta sökvägen som används av webbplatsen

1. Kontrollera filens verkliga plats

På LWS Panel placeras en webbplats offentliga filer vanligtvis i en katalog av den här typen:

Kod
/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.

2. Hitta den gamla sökvägen

Den felaktiga sökvägen kan vara sparad:

  • i en konfigurationsfil;
  • i ett anpassat PHP-skript;
  • i inställningarna för ett tillägg eller ett tema;
  • i konfigurationen av en cache-, import-, säkerhetskopierings- eller temporärfils-mapp;
  • i data som sparats efter en migrering.

Sök i första hand efter den karakteristiska delen av den gamla sökvägen, till exempel:

Kod
/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.

3. Ersätt den felaktiga sökvägen

Ersätt den gamla sökvägen med den verkliga sökvägen till filen på ditt LWS-webbhotell.

Till exempel:

Kod
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:

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

4. Töm programmets cache

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.

Kontrollera att allt fungerar

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.

Vanliga problem

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.

help.lws.net/a/765
Var den här artikeln till hjälp?

Ja

Nej

Läst 19 675 gånger

Tack! Ställ gärna frågor om vår dokumentation om du vill ha mer information och hjälp oss att förbättra den.

Liknande artiklar

En fråga om den här artikeln?

Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.

Ställ en fråga till AWS-teamet och dess community

GDPR: Personuppgiftsansvarig: LWS-Ligne Web Services. Ändamål: moderering och offentlig publicering av din fråga, eventuellt meddelande om ett svar. Rättslig grund: samtycke (art. 6.1 a GDPR). Lagring av e-postadresser: 90 dagar efter meddelandet, högst 12 månader utan svar. För att utöva dina rättigheter, se GDPR-avsnittet i våra allmänna villkor.