Для правильного вопроса надо знать половину ответа
Всё правильно. Массив $_SERVER заполняется web-сервером. При запуске из командной строки он не заполнен. Определить, в каком режиме работает скрипт можно так:
if (PHP_SAPI === 'cli') {
echo 'Command Line Interface';
} else {
echo 'Web-Server';
}
Morfeey, $_SERVER['DOCUMENT_ROOT'] - это путь к корневому каталогу сайта. Если запуск был из cli, то никакого сайта нет, куда должен вести путь? Просто проверяйте на тип запуска и подставляйте нужный каталог.