PDA

Показать полную графическую версию : Непонятная ошибка


Guest
16-02-2004, 06:58
Раньше работало нормально, а теперь (кажется в результате обновлений на стороне хостера) выдает ошибки:

Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/local/lib/php/new1.php) is not within the allowed path(s): (/www/vhosts/mydomain.ru/) in /www/vhosts/mydomain.ru/html/subdomain/modules/News/index.php on line 15

Warning: main(new1.php) [function.main]: failed to create stream: Operation not permitted in /www/vhosts/mydomain.ru/html/subdomain/modules/News/index.php on line 15

Warning: main() [function.main]: Failed opening 'new1.php' for inclusion (include_path='.:/usr/local/lib/php') in /www/vhosts/mydomain.ru/html/subdomain/modules/News/index.php on line 15

Версия PHPNuke 6.7
Почему так стало?

Prisoner
16-02-2004, 12:16
А кусочек кода этого файлика index.php около 15ой строки можно?

PS пользуйтесь тегом code.

Guest
16-02-2004, 13:35
На этой 15-ой строчке вот что

include("new1.php");

Если я ее комментирую, и просто вставляю все содержимое файла "new1.php", то все работает.

Другие файлы, такие как mainfile.php, header.php без проблем включаются командой include, что понятно, т.к. они лежат в одном каталоге с index.php и modules.php. Но что делать с остальными?

Может это из-за некорректных путей на хосте?

Добавлено:

Сорри, опять забыл про тег code.

Prisoner
16-02-2004, 23:24
Есть в php такая штука как Safe Mode - режим когда интерпретатор при некоторых операциях сравнивает владельца скрипта с владельцем файла над которым проводится операция каким-либо участком вашего кода. Именно поэтому проблема решается вставкой кода new1.php в тело своего скрипта. Проблему можно решить либо просьбой отключить Safe Mode (ибо имхо *такое* не этими средствами делается), либо вставкой в свой код "вражеского" :), либо сменой владельца "вражеских" файлов (если оно возможно).

Ginger
18-02-2004, 22:34
Guest
Другие файлы, такие как mainfile.php, header.php без проблем включаются командой include, что понятно, т.к. они лежат в одном каталоге с index.php и modules.php. Но что делать с остальными?

Может это из-за некорректных путей на хосте?
абсолютный путь документа на сайте не пробовали прописывать в include() ?

mar
19-02-2004, 01:27
/usr/local/lib/php/
- похоже, включаемый путь признается вот такой. Ихмо такая кракозябра может быть при PHP не модпхп-ом, а в cgi-ном варианте с жестко прописанным директорием для включения. Проверить можно, запустив файлик со строчкой
echo phpinfo(); .
Guest
а как ты указываешь каталог для включения? покажи код плз
а то я на днях тоже мучилась с хостером (http://www.forum.oszone.net/topic.cgi?forum=20&topic=783)


Исправлено: mar, 1:30 19-02-2004




© OSzone.net 2001-2012