添加新的虚拟主机后,服务器文档根目录发生变化

添加新的虚拟主机后,服务器文档根目录发生变化

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)

然后当我尝试访问 ns.server.com 时,出现 403 Forbidden

并且 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 似乎始终指向 /etc/apache2/sites-enabled 中按字母顺序排列的第一个站点的 public_html。如果我将 index.html 放在那里,我就可以访问 ns.server.com。

另外,如果我在第一个虚拟主机中以 Apache 用户身份运行 php,那么 ns.server.com/phpmyadmin 也能正常工作。

所以有一个解决方法,但它太奇怪了:-o

有任何想法吗?

答案1

简而言之,作为最佳实践,定义一个_default_虚拟主机。

IE

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

如果需要,您还可以将其添加到现有的虚拟主机指令...:

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

相关内容