Назад | Перейти на главную страницу

Корень документа сервера изменяется после добавления нового виртуального хоста

Ubuntu 18.04.3, Virtualmin 6.08, Webmin 1.932

Происходит что-то странное.

Если у меня ничего нет в / etc / apache2 / sites-enabled

тогда я могу получить доступ к домашней странице сервера: ns.server.com (/ var / www / html)

и ns.server.com/phpmyadmin отлично работает

Если я добавлю виртуальный хост или включу сайт с

a2ensite domain.com (+ перезагрузить apache)

тогда я получил 403 Forbidden при попытке доступа к ns.server.com

и ns.server.com/phpmyadmin загружают файл php вместо его выполнения.

Если я a2dissite domain.com (+ перезагрузите apache)

все снова работает нормально.

/etc/apache2/apache2.conf:

DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>
<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL
<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

Кто-нибудь может помочь разобраться в том, что происходит? Спасибо,

ОБНОВИТЬ

Таким образом, кажется, что ns.server.com всегда указывает на public_html первого по алфавиту сайта, который находится в / etc / apache2 / sites-enabled. Если я помещу туда index.html, я могу получить доступ к ns.server.com.

Также, если я запускаю php как пользователь Apache на первом виртуальном хосте, то ns.server.com/phpmyadmin также работает.

Так что есть обходной путь, но он оооочень странный: -o

Любые идеи?

Короче говоря, как лучшая практика, определите _default_ виртуальный хост.

т.е.

<VirtualHost _default_:*>
    DocumentRoot "/www/default"
</VirtualHost>

Вы также можете добавить его к существующей директиве virtualhost ... при необходимости:

<VirtualHost _default_:* 1.2.3.4:80>
    DocumentRoot "/www/some_website"
</VirtualHost>