- PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
- $ _SERVER [‘DOCUMENT_ROOT’] не работает в скрипте php, запущенном через cron
- 10 ответов
- Форум
- Document Root
- Document Root
- $ SERVER [‘document ROOT’] не работает в скрипте php, запущенном через cron
- 7 ответов
- The file .access.php is not found in the site root.
PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Подскажите что нужно включить чтобы работало echo $_SERVER[‘DOCUMENT_ROOT’]?
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Apache+mod_php, и сам PHP соответсвенно.
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Так включено, все остальные переменные массива $SERVER выводяться, а DOCUMENT_ROOT — нет.
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Конфиг httpd в студию (естественно только ту часть, которая затрагивает docroot)
И echo «» тоже желательно увидеть.
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Что интересно через web-интерфес выводит [DOCUMENT_ROOT] => /home/user1/public_html а из консоли echo «» | grep -i _root [DOCUMENT_ROOT] => пустую строку
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
угадай почему в консоле cli-php выдаёт пустой DOCUMENT_ROOT 🙂
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
>а из консоли echo «» | grep -i _root [DOCUMENT_ROOT] => пустую строку
Re: PHP. Не работает echo $_SERVER[‘DOCUMENT_ROOT’]
Оно ж и понятно. В консоле скрипт apach’ем не обрабатывается. Вот и нет у Вас документ рута.
Источник
$ _SERVER [‘DOCUMENT_ROOT’] не работает в скрипте php, запущенном через cron
Я использую $ _SERVER [‘DOCUMENT_ROOT’]. «/ Lib / sft_required.php»; для включения файла sft_required в сценарий PHP. Когда я запускаю этот файл в браузере, он работает нормально, но когда я запускаю его как задание cron, он не работает. Похоже, что файл не включается, когда мы запускаем скрипт через cron.
10 ответов
Предполагая, что вы запускаете скрипт напрямую через cron (в отличие от веб-сервера, доступ к которому осуществляется по HTTP-запросу, запускаемому cronjob (например, cron, запускающим wget)), тогда, конечно, это не работает.
Сервер отсутствует, поэтому $_SERVER не установлен.
Вы можете заполнить $ _SERVER [‘DOCUMENT_ROOT’] самостоятельно
Если файл cron находится в корне документа
Если файл cron находится на один каталог выше корня документа
Нельзя ожидать, что $_SERVER будет содержать какие-либо нормальные значения, когда сценарий PHP выполняется с использованием интерпретатора CLI. Либо укажите путь в переменной среды, либо передайте его сценарию в качестве аргумента командной строки.
Я ответил на аналогичный вопрос здесь. Как уже упоминалось, суперглобальный $ _SERVER не определяется в ситуациях CLI. В ссылке есть (пока) надежный метод получения местоположения DOCUMENT_ROOT. Надеюсь, это окажется полезным.
Это даст вам те же данные, что и $_SERVER[‘DOCUMENT_ROOT’] для cronjobs.
Пример 1:
/var/www/site.com/ — DOCUMENT_ROOT;
/var/www/site.com/ 2
Вот мое решение аналогичной проблемы, с которой я имел дело.
$site_root_directory = substr( __DIR__, 0, strpos( __DIR__, «wp-content» ) );
В моем случае я запускаю cron, который выполняет файл внутри моей темы. (Я не загружаю WordPress для кукурузы, поэтому у меня нет доступа к таким вещам, как ABSPATH ).
Таким образом, я получаю свой «корневой каталог», используя первую дочернюю папку внутри корня, ведущего к моему сценарию, вместо того, чтобы возвращаться из каталога сценария.
Это означает, что мне не нужно беспокоиться о перемещении моего скрипта, поскольку он всегда будет где-то в этой первой дочерней папке.
У меня была такая же проблема .. И решения, которые я нашел в Интернете, не работали с моим cron веб-сервера, поэтому мне нужно было найти другой способ легко изменить этот путь ..
И это в основном не большая проблема, когда у вас есть 1-2 файла cron (при необходимости можно легко редактировать путь к файлу), но у меня было 20 файлов cron, и когда мне нужно изменить сервер или путь или smt, тогда я должен изменить все эти файлы , измените на них путь к файлу .
Итак, я нашел как минимум для меня отличные решения: Я добавил один путь к файлу path.php в папку cron и bc в ту же папку с файлами cron, после чего вы можете включить его без ошибок.
И в path.php у меня есть $path = ‘/server/root/path’;
И затем я включаю этот path.php в мои файлы cron (у меня есть 20 файлов cron или около того)
И теперь я использую этот $ path в своих файлах cron, как показано ниже:
Теперь, если мне нужно изменить путь, я просто открываю файл path.php , меняю его и все работает.
Надеюсь, я кому-то помог, ведь решения изменили мою жизнь намного проще! Это все еще не идеально, bc perfect было бы, когда все работало автоматически, но для меня это намного проще, чем в предыдущей системе, поэтому я подумал, что поделюсь своим опытом, мэйб, я могу кому-то помочь :)!
В моем случае эта проблема была вызвана тем, что путь $_SERVER[‘DOCUMENT_ROOT’] имел завершающую косую черту во время обычных операций сайта и не завершающую косую черту во время заданий cron.
Я не уверен, что было причиной этого, но в качестве обходного пути я переключил свой код на использование ABSPATH вместо этого, поскольку он, похоже, возвращал согласованное значение.
Другими словами, я изменил это:
Есть несколько других решений этой проблемы, например, с помощью str_replace или rtrim .
Источник
Форум
Document Root
Document Root
Проект над которым я работаю весит полтора гигабайта, если даже оно заработает, я день убью чтобы поменять на dirname(__FILE__) инклуды в большинстве файлах, но если не будет другого выхода, придется.
Но за ответ спасибо
Если у нас PHP >= 5.3.0, то можем использовать __DIR__ вместо dirname(__FILE__)
http://php.net/manual/ru/language.const . efined.php
Та да, ошибки на лицо, можно ведь и самим догадаться откуда исполнение сайта начинается )). Хотя наверное подобные вопросы были и будут. Но ниче сами такими же были )).
jufelt, Зайдите в настройки OpenServer на вкладку «Домены». В поле «Автопоиск корневой папки домена. » удалите запись «docs». (Можете вообще там все очистить). Перезапустите сервер.
Впредь досконально описывайте проблему так как она есть, а не как вы ее видите. Быстрее правильный ответ получите.
- ГлавнаяСписок форумов
- Часовой пояс: UTC+03:00
- Удалить cookies
Создано на основе phpBB® Forum Software © phpBB Limited
Разработчик визуального стиля Arty — MrGaby
Контакты: , предоставляем бесплатную
удалённую техническую поддержку через TeamViewer
Источник
$ SERVER [‘document ROOT’] не работает в скрипте php, запущенном через cron
Я использую $_SERVER [‘DOCUMENT_ROOT’].»/lib / sft_required.php»; включить файл sft_required в php-скрипт. Когда я запускаю этот файл с помощью браузера, он работает нормально, но когда я запускаю его как задание cron, он не работает. Кажется, что файл не включается, когда мы запускаем скрипт через cron.
7 ответов
предполагая, что вы запускаете скрипт непосредственно через cron (в отличие от веб-сервера, доступ к которому осуществляется HTTP-запросом, инициированным cronjob (например, cron работает wget)), то, конечно, это не работает.
сервера нет, так что $_SERVER не установлено.
вы можете заполнить $_SERVER [‘DOCUMENT_ROOT’] самостоятельно
Если файл cron находится в корне документа
Если файл cron находится в одном каталоге выше корня документа
$_SERVER нельзя ожидать, что будет содержать какие-либо нормальные значения при запуске PHP-скрипта с помощью интерпретатора CLI. Либо поместите путь в переменную среды, либо передайте его скрипту в качестве аргумента командной строки.
Я ответил на аналогичный вопрос здесь. Как уже упоминалось, superglobal $_SERVER не определен в ситуациях CLI. В ссылке есть (пока) надежный метод для получения местоположения DOCUMENT_ROOT. Надеюсь, это окажется полезным.
это даст вам те же данные, что и $_SERVER[‘DOCUMENT_ROOT’] для cronjobs.
Пример 1:
/var / www / site.com / — DOCUMENT_ROOT;
/var / www / site.com/cron/script.php -CRON PHP скрипт;
Пример 2:
/var / www / site.com / — DOCUMENT_ROOT;
/var / www / site.com/sub_dir / cron/script.php -CRON PHP скрипт;
у меня была такая же проблема.. И решения, которые я нашел в Интернете, не работали с моим веб-сервером cron, поэтому мне нужно было найти другой способ легко изменить этот путь..
и его в основном не большая проблема, когда у yu есть 1-2 cron-файлы (при необходимости можно легко редактировать путь к файлу), но у меня было 20 cron-файлов, и когда мне нужно изменить сервер или путь или smt, то я должен изменить все эти файлы, изменить путь к файлу на них.
так что я нашел по крайней мере для меня отлично решения: я!—7—>maded один путь к файлу.php в папке cron и bc его же папку с файлами cron, то вы можете включить его без ошибок.
и путь.php у меня $path = ‘/server/root/path’;
и включить этот путь.php для моих файлов cron(у меня есть 20 файлов cron или так)
и теперь я использую этот $path в моих файлах cron, как показано ниже:
теперь, если мне нужно изменить путь, то я просто открываю путь.файл php , изменить его и все работает.
надеюсь, я помог кому-то, bc, что решения изменили мою жизнь намного проще! Его все еще не идеально, bc perfect будет, когда все будет работать автоматически, но для меня это намного проще, чем предыдущая система, поэтому я буду делиться своим опытом, mabe я могу помочь кому-то :)!
Источник
The file .access.php is not found in the site root.
запускаю в браузере сайт standart_encode_php5 а он выдаёт
The file .access.php is not found in the site root. Apparently the installation package has been unpacked incorrectly.
Bitrix site manager must be installed in web server root directory.
Please modify the server’s configuration or contact administrator of your hosting.
Пробовал менять местоположение .access.php,не помогает.
у меня свой сервер PHP Version 5.2.4 apache 2.0.59 mysql 5041
Устанавливал и с мастером установки и просто распаковывал.
Zend Optimizer v3.3.0 поставил
В чём проблема?
| Цитата |
|---|
| михаил богданов пишет: У меня сервер на windows xp собран. |
Я так понял BITRIX мне на windows xp не поставить,потому что для него нужен eacselerator,а он ставится только на unix системы.Прав ли я?
У меня ОС Debian 4.4 , веб сервер Nginx + php5 + mysql-server5 + ZendOptimizer-3.3.3 -linux-glibc23-i386.tar.gz
и всё равно выдаёт The file .access.php is not found in the site root. Apparently the installation package has been unpacked incorrectly
хотя файло .access.php лежит на сервере в корневой директории , в чём причина ? не переходить же мне на Apache , тем более я вижу ваш сервачёк тоже на Nginx/0.5.35 крутиться , сделайте нормальный мануал по установке вашего продукта на Linux сервера , с веб серверами , Nginx и Lighttpd
Думаю на этом не закончится.
| Цитата |
|---|
| Maxim Smirnov пишет: Попробуйте установить $_SERVER[«DOCUMENT_ROOT»] в корректное значение. |
1 в php.ini прописываем: auto_prepend_file=»/www/root/root.php»
2 в указанном выше root.php :
Думаю на этом не закончится.
| Цитата |
|---|
| Maxim Smirnov пишет: Попробуйте установить $_SERVER[«DOCUMENT_ROOT»] в корректное значение. |
1 в php.ini прописываем: auto_prepend_file=»/www/root/root.php»
2 в указанном выше root.php :
Думаю на этом не закончится.
| Цитата |
|---|
| zakirov пишет: У меня на установленном денвере то же самое. И это не помогает: |
| Цитата |
|---|
| Maxim Smirnov пишет: Попробуйте установить $_SERVER[«DOCUMENT_ROOT»] в корректное значение. |
1 в php.ini прописываем: auto_prepend_file=»/www/root/root.php»
2 в указанном выше root.php :
Думаю на этом не закончится.
В общем для тех, у кого уже был установлен веб-сервер (например XAMPP) и не хочет использовать Битриксовское Веб-окружение и столкнулся с такой ошибкой, я нашёл вариант её решения. Для этого нужно взять руководство по инсталяции и обратится к 4-ой главе «Установка нескольких продуктов на одно веб-окружение». Идея заключается в создании виртуального хоста и привязки его по определённому номеру порта к реальной папке, в которой установлен битрикс. Если в файле-конфигурации Apache httpd.conf прописать следующие строки:
Listen 81
ServerName localhost
DocumentRoot «C:\xampp\htdocs\имя_папки»
А также в строчках:
Options FollowSymLinks
AllowOverride None
Источник