'DOCUMENT_ROOT' не пашет из под шелл

Статус
В этой теме нельзя размещать новые ответы.

qwyjibo

Постоялец
Регистрация
27 Янв 2009
Сообщения
64
Реакции
12
Не работает через ssh. Вот такой вот скрипт ничего не выдает, если запустить его из shell доступа. Если через браузер - то все работает как и должно. И если пути прописать полные - тоже все работает.
PHP:
#!/usr/local/bin/php
<?php
echo $_SERVER["DOCUMENT_ROOT"];
?>
Это так и должно быть, или чего-то в настройках не то?
 
читай справку
$_SERVER
Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).

$_SERVER отдается апачем , когда запускаешь в консоли -- апача нет, => массив пустой
 
Попробуй через curl запускать. Это несколько через жопу, но зато скрипт не надо переписывать. Как правило это выглядит так:
/usr/local/bin/curl -s 'http://test.ru/file.php'
Но точнее надо у хостера уточнять.
 
Так все началось с того, что через крон не работало. И в шелл я полез только чтобы разобраться что да как ))). Я так понимаю, что крон, что шелл - одинаково серверные переменные пустые будут. Так что я просто прописал полный путь в скрипте и все теперь работает отлично :).
 
Тебе нужно или переписать скрипт, чтоб он работал без $_SERVER["DOCUMENT_ROOT"], или по крону запускать wget Для просмотра ссылки Войди или Зарегистрируйся....
Тоесть делать запуск скрипта через апачу.
 
попробуй $_SERVER["DOCUMENT_ROOT"] заменить на dirname(__FILE__)
 
Только что проверял фишка с dirname(__FILE__); под шеллом работать будет
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху