open_basedir и require в require'е

MVH

Новичок
open_basedir и require в require'е

Проблема в следующем.
Есть следующие PHP скрипты:
/test.php
/includes/config.php
/includes/lib/qwe.php

/test.php
PHP:
<?php
require_once('includes/config.php');
?>
/includes/config.php
PHP:
<?php
require_once('lib/qwe.php');
?>
/includes/lib/qwe.php
PHP:
<?php
print 'qweqweqwe';
?>

PHP 5.0.4
safe_mode = off
open_basedir = "/var/www/vhosts/skimen.ru/httpdocs:/tmp"

Если задан данный open_basedir, то при вызове /test.php выдаётся ошибка:

Warning: main() [function.main]: open_basedir restriction in effect. File(/lib/qwe.php) is not within the allowed path(s): (/var/www/vhosts/skimen.ru/httpdocs:/tmp) in /var/www/vhosts/skimen.ru/httpdocs/open_basedir_test/includes/config.php on line 2

Warning: main(lib/qwe.php) [function.main]: failed to open stream: Operation not permitted in /var/www/vhosts/skimen.ru/httpdocs/open_basedir_test/includes/config.php on line 2

Fatal error: main() [function.require]: Failed opening required 'lib/qwe.php' (include_path='.:.:') in /var/www/vhosts/skimen.ru/httpdocs/open_basedir_test/includes/config.php on line 2
Если open_basedir не задан, то всё выполняется нормально.

Примеры и phpinfo выложил сюда:
С включённым open_basedir:
http://90.156.149.110/open_basedir_test/test.php
http://90.156.149.110/phpinfo.php

С выключенным open_basedir:
http://90.156.148.153/open_basedir_test/test.php
http://90.156.148.153/phpinfo.php


Сама папка со скриптами здесь: http://90.156.148.153/open_basedir_test.rar


Это глюк моих кривых рук или PHP???

-~{}~ 21.09.07 23:49:

Кажется, это баг: http://bugs.php.net/bug.php?id=14396
 

andymc

Новичок
попробуй подняться выше ../
Код:
/includes/config.php
<?php
require_once('../lib/qwe.php');
?>
 

MVH

Новичок
dimagolov, нет. Мне интересно, почему выдаётся ошибка при использовании относительных путей? Ведь скрипты обращаются исключительно к файлам, лежащим в разрешённом open_basedir каталоге? Проблема именно с двойным вложение, т.к. http://90.156.149.110/open_basedir_test/includes/config.php работает нормально.
 

cDLEON

Онанист РНРСlub
<b>Warning</b>: main() [<a href='function.main'>function.main</a>]: open_basedir restriction in effect. File(/lib/qwe.php) is not within the allowed path(s): (/var/www/vhosts/skimen.ru:/tmp) in <b>/var/www/vhosts/skimen.ru/httpdocs/open_basedir_test/includes/config.php</b> on line <b>2</b><br />
Ты почему кодом своим обманываешь?

-~{}~ 22.09.07 12:41:

PHP:
include_path='.:.:'
И это чё за изврат?
 

MVH

Новичок
cDLEON, это я сейчас на сервере ковырялся с путями в open_basedir. :) Сейчас всё как было поставил.

-~{}~ 23.09.07 00:06:

cDLEON, балин, точно! Всё дело в include_path='.:.:'. Чё-то я не заметил. :) Проблема решена, всем спасибо :)
 
Сверху