Apache Main DocumentRoot не существует - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь найти, где ссылка на /var/www/html все еще существует в моей конфигурации Apache. Когда я запускаю apache2ctl -S, он говорит Main DocumentRoot: "/var/www/html", но ни один из моих виртуальных хостов или мой основной файл конфигурации Apache не указывают на этот каталог.

Я попытался найти все файлы конфигурации, используя grep -r "var/www/html" /etc/apache2/, но ничего не возвращается.

В моем файле /etc/apache2/apache2.conf нет записи <Directory> для этого пути (есть запись для /var/www, в которой я храню виртуальные хосты).

Эта странность конфигурации беспокоит мое OCD, но я также часто вижу эти записи в моем журнале ошибок Apache:

[Fri Jun 28 18:19:53.424619 2019] [autoindex:error] [pid 22665] 
[client 209.222.82.167:47376] AH01276: Cannot serve directory
   /var/www/html/: No matching DirectoryIndex 
   (default.php,index.php,index.html,index.htm) found, and server-generated
   directory index forbidden by Options directive

Как Apache решает, что такое основной корень документа, и как я могу его изменить?

EDIT:

Для моих сайтов, доступных / сайты включены, у меня есть четыре файла: 000-default.conf, 000-default-le-ssl.conf, 000-www-default.conf и 000-www-default-le-ssl.conf. 000-default.conf - это перенаправление, установленное certbot для указания на сайт https и не имеет директивы DocumentRoot. 000-www-default.conf идентичен 000-default.conf, но для ServerName (у одного есть www, а у другого нет); та же схема следует для 000-www-default-le.conf и 000-default-le.conf.

Вот вывод некоторых вещей, которые я пробовал:

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Как указывало @ Nic3500, /var/www/html является значением по умолчанию для основного DocumentRoot.Изменение конфигурации виртуального хоста не влияет на .Однако добавление директивы DocumentRoot к apache.conf меняет ее, как отражено в выводе apache2ctl -S.

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

0 голосов
/ 29 июня 2019

В Debian / Ubuntu файл виртуального хоста по умолчанию: / etc / apache2 / sites-available / 000-default.conf имеет DocumentRoot / var / www / html .

Я думаю, что Main DocumentRoot, о котором сообщает apache2ctl -S , совпадает с DocumentRoot по умолчанию. DocumentRoot по умолчанию определяется либо в / etc / apache2 / apache2.conf , либо в / etc / apache2 / sites-available / 000-default.conf . Это описано в Как изменить каталог Apache ‘DocumentRoot по умолчанию в Linux . Таким образом, чтобы изменить Main DocumentRoot, вам нужно отредактировать / etc / apache2 / sites-available / 000-default.conf .

...