Я вижу странное поведение при доступе к $_SERVER['DOCUMENT_ROOT']
в субдомене. Он содержит дублирующее имя папки, которое не существует.
Вот соответствующий вывод $_SERVER
:
[DOCUMENT_ROOT] => /var/www/sub.domainname.com/sub.domainname.com [SCRIPT_FILENAME] => /var/www/sub.domainname.com/index.php
Должен быть:
[DOCUMENT_ROOT] => /var/www/sub.domainname.com
Вот конфигурация виртуального хоста:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sub.domainname.com DocumentRoot /var/www/sub.domainname.com <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/sub.domainname.com> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Эта проблема, вероятно, вызвана неверно настроенным веб-сервером, в документации по PHP говорится, что этот $_SERVER['DOCUMENT_ROOT']
содержит каталог сценариев, определенный в конфигурационном файле серверов. Поэтому это может отличаться от фактического местоположения каталога сценариев.
DOCUMENT_ROOT
Корневой каталог документа, под которым выполняется текущий скрипт, как определено в конфигурационном файле сервера.
Источник: PHP Зарезервированные переменные $_SERVER[]
Страница руководства