
open_basedir е директива за PHP конфигурация, използвана за ограничаване на директориите, до които PHP скриптовете имат достъп на сървъра. Това е мярка за сигурност, която предотвратява достъпа на PHP скриптове до файлове или директории извън определен набор от пътища.
Цел:
Той ограничава операциите на файловата система на PHP (като fopen (), include (), require ()и т.н.) до определено дърво на директориите. Това помага да се предотврати неоторизиран достъп до файлове, особено в споделена среда за настаняване на гости.
Как работи:
Ако open_basedir е настроен на /home/user/public_html /,тогава PHP скриптовете могат да имат достъп само до файлове в тази директория и нейните поддиректории.
Пример в php.ini:
open_basedir = /home/user/public_html/:/tmp/
Тази настройка позволява на PHP скриптовете да имат достъп до файлове само в /home/user/public_html /и/tmp /.
Какво се случва, ако скрипт се опита да получи достъп до файл извън този път?
PHP ще хвърли предупреждение/грешка като:
Предупреждение: в сила е ограничението open_basedir. Файлът(/ etc/passwd) не е в рамките на разрешените пътища…
Къде може да се настрои:
- php.ini (глобално)
- .htaccess (ако използвате Apache с mod_php)
- httpd.conf
- Конфигурации на виртуални домакини
- Контролни панели за хостинг (като cPanel, Directadmin или Plesk)
Конкретни приложения
Споделено настаняване на гости: изолирайте потребителите един от друг.
Сигурност: Предотвратете достъпа до чувствителни системни файлове.
Персонализирани приложения: Заключване на скриптове в определена папка с приложения.


