PHP open_basedir сломан в Apache, но работает в PHP во время выполнения

Я переношу веб-сайты на новый сервер, и один сайт, который использует open_basedir в своих доступных файлах, дает мне проблемы и просто показывает пустую страницу, когда я пытаюсь ее загрузить.

Я исправил это, переместив конфигурацию open_basedir с Apache VirtualHost на переднюю страницу index.php внутри ini_set (). Это исправление беспокоит меня, хотя я чувствую, что чего-то не хватает. Есть ли определенный параметр Apache, который мне нужно изменить или что-то, чтобы заставить его работать в конфигурации VirtualHost?

Обратите внимание, что я перезапустил apache после изменения файла, доступного для сайтов.

Вот файл с доступными сайтами:

<VirtualHost *:443> ServerName www.mysite.com ServerAdmin webmaster@mysite.com DocumentRoot /var/www/www.mysite.com/content php_flag open_basedir /var/www/www.mysite.com/ SSLEngine On SSLCertificateFile /etc/ssl/certs/www_mysite_com.crt SSLCertificateKeyFile /etc/ssl/private/www_mysite_com.key SSLCACertificateFile /etc/ssl/certs/DigiCertCA.crt RewriteEngine on FileETag INode MTime Size ExpiresActive On ExpiresDefault "access plus 1 week" ExpiresByType text/html "access plus 5 seconds" CustomLog /var/log/apache2/access.log combined </VirtualHost> 

Вот ошибка, которую Apache дает мне (/var/log/apache2/error.log):

 ... PHP Warning: Unknown: open_basedir restriction in effect. File(/var/www/www.mysite.com/content/index.php) is not within the allowed path(s): (0) in Unknown on line 0 ... PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 ... PHP Fatal error: Unknown: Failed opening required '/var/www/www.mysite.com/content/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0 

Я даже попытался просто установить базовый каталог на root (php_flag open_basedir /), и он все еще дал мне ошибку.

Существующий сервер: Debian GNU / Linux 4.0, версия PHP 5.2.0-2, Apache 2.2.3

Новый сервер: Debian GNU / Linux 6.0, PHP версии 5.3.3-7 + squeeze3, Apache 2.2.16

Вместо этого попробуйте следующее:

 <VirtualHost *:443> ... php_admin_value open_basedir "/var/www/www.mysite.com/" ... </VirtualHost> 

Вы используете *_flag где вы должны использовать *_value .

*_flag для булевых значений, тогда как *_value для строк. Дополнительные сведения см. В разделе « Изменение параметров конфигурации» .