✦ Oplossingen · PHP-fouten

open_basedir restriction in effect: wat het betekent

'open_basedir restriction in effect. File(…) is not within the allowed path(s)' betekent dat PHP een bestand buiten de toegestane mappen probeert te lezen. Zo los je het veilig op.

Waarom gebeurt dit?

Met open_basedir beperkt de server tot welke mappen PHP toegang heeft. Op gedeelde hosting is dat een belangrijke beveiliging: een website kan zo niet bij de bestanden van een andere site. Probeert code een bestand te openen buiten die mappen, dan krijg je Warning: file_exists(): open_basedir restriction in effect. File(/pad) is not within the allowed path(s).

Vaak gaat het om een pad dat niet klopt (een absoluut pad van een andere server na een verhuizing), om een tijdelijke map (/tmp) die niet is toegestaan, of om een sessiemap buiten de toegestane paden.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Lees welk pad geweigerd wordt

    De melding noemt het pad en de toegestane paden. Vergelijk ze: ligt het bestand echt buiten de site, of is het pad verkeerd geschreven?

  2. Gebruik paden binnen je eigen site

    Bouw paden op vanaf de map van het script, zodat ze na een verhuizing blijven kloppen.

    <?php
    $config = __DIR__ . '/config/instellingen.php';
    require_once $config;
  3. Controleer tijdelijke map en sessiemap

    Zet upload_tmp_dir en session.save_path op een map binnen de toegestane paden, of vraag de hoster die mappen toe te voegen.

  4. Pas open_basedir alleen aan als het moet

    Op een eigen server stel je open_basedir per site in, bijvoorbeeld in de PHP-FPM-pool. Voeg alleen mappen toe die de site echt nodig heeft; open_basedir helemaal uitzetten haalt een beschermingslaag weg.

    ; PHP-FPM pool, per site
    php_admin_value[open_basedir] = /var/www/mijnsite:/tmp

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Na een verhuizing krijg ik ineens open_basedir-fouten.

De code of configuratie bevat nog absolute paden van de oude server. Zoek ernaar in configuratiebestanden en vervang ze door relatieve paden of de nieuwe locatie.

Kan ik open_basedir gewoon uitzetten?

Op gedeelde hosting meestal niet, en dat is goed. Op een eigen server kan het, maar je verliest daarmee een afscherming tussen sites.

Mijn sessies werken niet meer.

Controleer of session.save_path binnen de toegestane paden valt en of PHP daar mag schrijven.