synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › DOCUMENT_ROOT

DOCUMENT_ROOT

quarz · 29.09.2014

На внешнем хостинге переменная окружения $_SERVER[DOCUMENT_ROOT] возвращает "/home/my_domain_name.ru/docs", корневую директорию сайта где лежат все файлы, в т.ч. и index.php

На синолоджи в $_SERVER[DOCUMENT_ROOT] хранится "/var/services/web". Добавлен виртуальный домен "my_domain_name", и я ожидал что в переменной будет "/var/services/web/my_domain_name".

Рыться в httpd.conf ночами не горю желанием, гугл не помог. Кто знает где у апача это настраивается?

(DSM 5.0-4493 Update 5)

quarz · 18.11.2014

Разбираюсь дальше.

По идее, DocumentRoot для виртуальных хостов можно изменять, это бывает необходимо для некоторых CMS/фреймворков (пример)

Когда мы добавляем виртуальный хост (Панель управления -> Веб-службы -> Виртуальный хост), эти данные добавляются в файл /etc/httpd/sites-enabled-user/httpd-vhost.conf-user: например для хоста tracker в папке trackerdir на 80 порту:

 

<VirtualHost *:80>

ServerName tracker

DocumentRoot "/var/services/web/trackerdir"

...

</VirtualHost>

 

Этот файл, в свою очередь, включен в /etc/httpd/conf/httpd.conf.

 

После добавления нового виртуального хоста, я ожидаю, что он будет доступен по адресу "192.168.1.9/tracker" (1.9 - адрес синолоджи в локалке), а переменная окружения _SERVER['DOCUMENT_ROOT'] будет содержать "/var/services/web/trackerdir"

 

И нифига! У меня почему-то сайт доступен только по имени директории (192.168.1.9/trackerdir), а document root указывает на корневую папку /var/services/web

 

Странно все это. Ведь виртуальные хосты у меня работали раньше. Сломалось где-то при переходе с 4.3 на 5.0

ent · 19.11.2014

Всё правильно вас "посылают". У вас есть физический каталог /tracker?

Вы настраиваете "Name based" виртуальный хост. По вашим настройкам, чтоб увидеть эффект виртуального хоста надо стучаться по адресу http://tracker, при условии правильной настройки DNS. Имя tracker должно указывать на 192.168.1.9.

 

quarz · 19.11.2014
Всё правильно вас "посылают". У вас есть физический каталог /tracker?

Вы настраиваете "Name based" виртуальный хост. По вашим настройкам, чтоб увидеть эффект виртуального хоста надо стучаться по адресу http://tracker, при условии правильной настройки DNS. Имя tracker должно указывать на 192.168.1.9.

 

Спасибо! Добавил в hosts "192.168.1.9 tracker" и по адресу "http://tracker" на самом деле открывается сайт из папки web/trackerdir. И переменная document root содержит полный путь, включая папку виртуального хоста :) Главная проблема решена