#apache #debugging #web #webserver #virtualhost
#apache #отладка #веб #веб-сервер #virtualhost
Вопрос:
У меня есть прикрепленный конфиг, я пытаюсь отобразить mysite.com
(определяется как vhost в самом конце), но он всегда показывает индексную страницу по умолчанию, ту, которая у меня есть в /var/www/html/domains/default/index.php
Я знаю, что одной из причин может быть неправильный код разрешения в моей папке vhost, но я не думаю, что сейчас это так, я не вижу этой распространенной forbidden
ошибки в журналах, и для целей отладки я указываю полный путь к подкаталогам, чтобы принадлежать apache:apache
Я также попытался переместить свой vhost в начало файла .conf, но это ничего не изменило.
ServerRoot "/etc/httpd"
Listen *:80
Listen *:443
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName vm3.mysite.com:80
<Directory />
AllowOverride all
Require all granted
</Directory>
DocumentRoot "/var/www/html/domains/default"
<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
<VirtualHost mysite.com:80>
DocumentRoot /var/www/html/domains/mysite.com
ServerName mysite.com
<Directory "/var/www/html/domains/mysite.com">
allow from all
Options None
Require all granted
</Directory>
</VirtualHost>
KeepAlive on
Ответ №1:
Вы vm3.mysite.com
настроили вне VirtualHost
блока, который apache использует безоговорочно и игнорирует mysite.com
vhost. Вы могли бы исправить это, перейдя vm3.mysite.com
на отдельный виртуальный хост (где они встречаются в файле конфигурации, на самом деле не имеет значения, если они оба находятся на виртуальном хосте).
Вот ваша конфигурация, с некоторыми директивами, реорганизованными для ясности, и соответствующие биты перемещены в соответствующий VirtualHost
блок внизу:
ServerRoot "/etc/httpd"
Listen *:80
Listen *:443
User apache
Group apache
KeepAlive on
EnableSendfile on
Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf
<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
<VirtualHost vm3.mysite.com:80>
ServerAdmin root@localhost
ServerName vm3.mysite.com
DocumentRoot "/var/www/html/domains/default"
<Directory />
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost mysite.com:80>
DocumentRoot /var/www/html/domains/mysite.com
ServerName mysite.com
<Directory "/var/www/html/domains/mysite.com">
allow from all
Options None
Require all granted
</Directory>
</VirtualHost>
Чтобы все было лучше организовано, вы можете рассмотреть возможность переноса этих хостов в отдельный конфигурационный файл, conf.d/<your_file>.conf
который будет автоматически включен в основную конфигурацию. Это позволит вам сохранить настройки вашего виртуального хоста отдельно от общей конфигурации сервера и избежать большей части предыдущей путаницы.