a2dissite 000-default.conf 之后仍可访问默认页面

Fri*_*dFX 6 apache2

我全新安装了 Ubuntu 16.04 LTS Server(32 位),并启用了 LAMP 软件包。这意味着开箱即用,它在端口 80 上提供典型的 Apache2 Ubuntu 默认页面,位于/var/www/html/index.html.

\n\n

我做的第一件事就是尝试使用古老的方法禁用该页面

\n\n
sudo a2dissite 000-default.conf\n
Run Code Online (Sandbox Code Playgroud)\n\n

命令,这提示我做

\n\n
service apache2 reload\n
Run Code Online (Sandbox Code Playgroud)\n\n

我也用 来调用sudo

\n\n

令我惊讶的是,之后该网站仍然可以访问:在 Firefox 中重新加载和切换重新加载仍然显示该页面,并且我可以在/var/log/apache2/other_vhosts_access.log.

\n\n

a2dissite再次运行命令显示Site 000-default already disabled目录/etc/apache2/sites-enabled/为空。

\n\n

我究竟做错了什么?

\n\n

编辑:

\n\n

至于Julius \xc5\xa0 的建议。,我也尝试过

\n\n
sudo service apache2 restart\n
Run Code Online (Sandbox Code Playgroud)\n\n

具有相同的结果并检查了我的/etc/apache2/apache2.conf文件,该文件<VirtualHost>仅在一些评论中显示。

\n\n

关于<Directory>条目,这些只是文件中的默认值:

\n\n
<Directory />\n        Options FollowSymLinks\n        AllowOverride None\n        Require all denied\n</Directory>\n\n<Directory /usr/share>\n        AllowOverride None\n        Require all granted\n</Directory>\n\n<Directory /var/www/>\n        Options Indexes FollowSymLinks\n        AllowOverride None\n        Require all granted\n</Directory>\n\n#<Directory /srv/>\n#       Options Indexes FollowSymLinks\n#       AllowOverride None\n#       Require all granted\n#</Directory>\n
Run Code Online (Sandbox Code Playgroud)\n\n

可能是某些插件在/var/www/子文件夹中搜索合适的 html 文件吗?

\n\n

编辑2:

\n\n

我也reboot编辑了机器,该网站仍然可以访问。

\n\n

只有停止该服务才会使其变得无法访问。由于我计划在其上运行其他站点,因此我最终需要让它运行,所以我真的很好奇发生了什么。

\n\n

编辑3:

\n\n

正如我在SO 上的这个答案中发现的那样,配置文件中的虚拟主机设置可以显示如下:

\n\n
. /etc/apache2/envvars\napache2 -S\n
Run Code Online (Sandbox Code Playgroud)\n\n

...就我而言,输出以下内容:

\n\n
AH00558: apache2: Could not reliably determine the server\'s fully qualified domain name, using 127.0.1.1. Set the \'ServerName\' directive globally to suppress this message\nVirtualHost configuration:\nServerRoot: "/etc/apache2"\nMain DocumentRoot: "/var/www/html"\nMain ErrorLog: "/var/log/apache2/error.log"\nMutex mpm-accept: using_defaults\nMutex watchdog-callback: using_defaults\nMutex default: dir="/var/lock/apache2" mechanism=fcntl \nPidFile: "/var/run/apache2/apache2.pid"\nDefine: DUMP_VHOSTS\nDefine: DUMP_RUN_CFG\nUser: name="www-data" id=33 not_used\nGroup: name="www-data" id=33 not_used\n
Run Code Online (Sandbox Code Playgroud)\n\n

DocumentRoot我对指向的条目有点怀疑/var/www/html,所以我做了一个

\n\n
find |xargs grep DocumentRoot 2>/dev/null\n
Run Code Online (Sandbox Code Playgroud)\n\n

/etc/apache2文件夹中,这导致了以下结果:

\n\n
./sites-available/default-ssl.conf:     DocumentRoot /var/www/html\n./sites-available/000-default.conf: DocumentRoot /var/www/html\n
Run Code Online (Sandbox Code Playgroud)\n\n

...所以*-enabled/包含该字符串的任何子文件夹中都没有任何内容。我真的很想知道DocumentRoot当什么都没有启用时 Apache 从哪里得到的。

\n

mur*_*uru 5

DocumentRoot一个默认值,如果未设置则使用该默认值。这意味着 Apache 将从某个目录中提供服务,即使DocumentRoot没有在配置中的任何位置进行设置。

对于上游 Apache 源,即/usr/local/apache/htdocs,但Ubuntu 打包--enable-layout=Debian. /var/www/html这大概就是它继续与as一起使用的原因DocumentRoot。如果您只是希望它停止加载该页面,请www-data通过更改权限或设置DocumentRoot为其他目录来使其无法被用户访问。