mars37
Новичок
пустой $DOCUMENT_ROOT с виртуальными хостами
Раньше в работе я не использовал виртуальные хосты. В php-скриптах все пути указывал относительно $DOCUMENT_ROOT, например:
require_once($DOCUMENT_ROOT.'/../fns/design.php');
Теперь понадобилось в другом проекте использовать виртуальные хосты. Настроил в httpd.conf примерно так (реальные пути и названия заменены):
-----------------
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.4>
DocumentRoot D:/Apache/htdocs/New_ProjectVirt_1/www
ServerName virt1.loc
ServerAlias virt1.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
<VirtualHost 127.0.0.5>
DocumentRoot D:/Apache/htdocs/New_ProjectVirt_2/www
ServerName virt2.loc
ServerAlias virt2.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
<VirtualHost 127.0.0.10>
DocumentRoot D:/Apache/htdocs/Old_Project/www
ServerName oldproject.loc
ServerAlias oldproject.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
-----------------
Когда в браузере запрашиваю virt1.loc, virt2.loc или oldproject.loc, сервер обрабатывает правильные пути, те, что я указал в DocumentRoot соответствующего вирт.хоста. НО!!!
PHP-переменная $DOCUMENT_ROOT пуста! Из за этого не работает старый проект. Хотя в $_SERVER['DOCUMENT_ROOT'] лежит правильное значение.
Вопрос: что нужно сделать в httpd.conf, чтобы для каждого вирт.хоста была правильная PHP-переменная $DOCUMENT_ROOT?
Раньше в работе я не использовал виртуальные хосты. В php-скриптах все пути указывал относительно $DOCUMENT_ROOT, например:
require_once($DOCUMENT_ROOT.'/../fns/design.php');
Теперь понадобилось в другом проекте использовать виртуальные хосты. Настроил в httpd.conf примерно так (реальные пути и названия заменены):
-----------------
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.4>
DocumentRoot D:/Apache/htdocs/New_ProjectVirt_1/www
ServerName virt1.loc
ServerAlias virt1.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
<VirtualHost 127.0.0.5>
DocumentRoot D:/Apache/htdocs/New_ProjectVirt_2/www
ServerName virt2.loc
ServerAlias virt2.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
<VirtualHost 127.0.0.10>
DocumentRoot D:/Apache/htdocs/Old_Project/www
ServerName oldproject.loc
ServerAlias oldproject.loc
ErrorLog ...
CustomLog ...
</VirtualHost>
-----------------
Когда в браузере запрашиваю virt1.loc, virt2.loc или oldproject.loc, сервер обрабатывает правильные пути, те, что я указал в DocumentRoot соответствующего вирт.хоста. НО!!!
PHP-переменная $DOCUMENT_ROOT пуста! Из за этого не работает старый проект. Хотя в $_SERVER['DOCUMENT_ROOT'] лежит правильное значение.
Вопрос: что нужно сделать в httpd.conf, чтобы для каждого вирт.хоста была правильная PHP-переменная $DOCUMENT_ROOT?