PHP « Проблема с подключением файла в PHP
У меня такая проблема. PHP выдаёт ошибку
Warning: require_once(/modules/autorization.php) [function.require-once]: failed to open stream: No such file or directory in /www/avafreehost.com/n/y/a/nyao/htdocs/popr.php on line 2
Fatal error: require_once() [function.require]: Failed opening required '/modules/autorization.php' (include_path='.:/usr/lib/php') in /www/avafreehost.com/n/y/a/nyao/htdocs/popr.php on line 2
Никак не могу её решить. Права на файл к которому обращается есть. Я даже 777 ставил. Файл физически существует. Чё только не предпринимал. Просто делаю свою ЦМС. И пробую на хостинге уже. А файл очень нужно подключить.
1 ответов
"/" в начале адреса подразумевает путь от корня сайта.
Документы на вашем сайте хранятся в каком-нибудь public_html/ и поэтому путь на самом деле будет с public_html вначале. Посомтрите в ftp и напишите пути правильно.
В вашем случае это будет, как понятно из ошибки:
/www/avafreehost.com/n/y/a/nyao/htdocs/modules/autorization.php
Теперь подсказки:
1. Чтобы файлы выбирались относительно исполняемого файла, нужно убрать слеш вначале строки.
modules/autorization.php //если выше по директориям
../modules/authorization.php // если ниже по директориям, вплоть до ../../../ и т..п
2. Если хотите использовать абсолютный путь, то делаете так:
$dir = dirname(__FILE__); //определили директорию текущего исполняемого файла
require_once($dir.'/modules/authorization.php');
или так:
DEFINE('ABS','/www/avafreehost.com/n/y/a/nyao/htdocs'); //это в конфиге
require_once(ABS.'/modules/authorization.php'); //а это пользование во всех других файлах.
Про SAFE MODE:
1. Когда возникает непонятная проблема. То нужно спрашивать у гугла/яндекса (какой вы там религии).
Читаем по запросу SAFE MODE PHP из яндекса (хотя обычно гуглом, но забыл префикс в адресной строке воткнуть)
http://www.phpclub.net/manrus/feat/safe-mode.html
ПОтом смотрим можно ли его отключить.
http://www.php.ru/manual/features.safe-mode.html
директивы для ini_set() :
http://www.php.ru/manual/ini.html#ini.list
как самое простое - напрячь саппорт или сменить хостинг.
Прописал и первый и второй работает идентично, проблема походу на половину решена. Но возникла другая. Вот, что выдаётся в ответ на прописание строки:
Warning: require_once() [function.require-once]: SAFE MODE Restriction in effect. The script whose uid is 2001 is not allowed to access /www/avafreehost.com/n/y/a/nyao/htdocs/modules/autorization.php owned by uid 29917 in /www/avafreehost.com/n/y/a/nyao/htdocs/popr.php on line 3
Warning: require_once(/www/avafreehost.com/n/y/a/nyao/htdocs/modules/autorization.php) [function.require-once]: failed to open stream: Inappropriate ioctl for device in /www/avafreehost.com/n/y/a/nyao/htdocs/popr.php on line 3
Fatal error: require_once() [function.require]: Failed opening required '/www/avafreehost.com/n/y/a/nyao/htdocs/modules/autorization.php' (include_path='.:/usr/lib/php') in /www/avafreehost.com/n/y/a/nyao/htdocs/popr.php on line 3
Видно дело ещё теперь появилось с юзером. Уже мозг кипит. (( Но чёрт подери, почему я просто не могу подключить файл из-за сэйф мода. Как его обойти?