← К заметкам

Заметки

Почему $_SERVER['DOCUMENT_ROOT'] пустой в консоли

В CLI нет веб-сервера, который установил бы DOCUMENT_ROOT. Поэтому пустое значение в консольном PHP — нормальная ситуация, а не повреждённая настройка портала.

Если скрипт лежит в /local/tools, корень проекта можно вычислить от самого файла:

$document_root = dirname(__DIR__, 2);
$_SERVER['DOCUMENT_ROOT'] = $document_root;

Не используйте для этого текущий рабочий каталог: у cron он может отличаться. Для скрипта вне структуры сайта задайте корень явно в конфигурации команды.

Полный пример подключения пролога