从 apache2 的 2.4.7 版本开始,我的本地网站应该放在哪里?

akx*_*xer 53 lamp apache2

我最近安装了 Ubuntu 14.04,然后我安装lamp-server并将我的网页放在/var/www目录中,但是当我在浏览器中打开 localhost 时什么也没有。我认为这是因为 Zend 更新了 Apache。

不管是什么原因,我想知道在哪里保存我的 php 文件,以便我可以从浏览器访问它们。

Rad*_*anu 79

Ubuntu 14.04 发布时发布的 apache2 版本是 2.4.7,从这个版本开始,出于安全原因,服务器的新根目录似乎是:

/var/www/html
Run Code Online (Sandbox Code Playgroud)

因此,从现在开始,您必须在此处放置(本地)网站的文件。以后的更新应该不会再出现这个问题了。


无论如何,如果您想用另一个目录更改此目录,则必须(以 root 身份)修改/etc/apache2/sites-available/000-default.conf文件 ( sudo nano /etc/apache2/sites-available/000-default.conf) 中的以下行:

DocumentRoot /var/www/html
Run Code Online (Sandbox Code Playgroud)

DocumentRoot /path/to/another/directory
Run Code Online (Sandbox Code Playgroud)

在此之后,要使新更改生效,您必须使用以下命令重新启动 apache 服务器:

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

  • 有趣的是,我试图寻找这一举动背后的原因。如果有人感兴趣,我在 Debian 中找到了 [this bug report](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730372),它对此进行了解释。 (10认同)
  • 此更改后,我收到禁止错误。 (6认同)

Dan*_*Dan 27

与其修改/etc/apache2/sites-available/000-default.conf回旧版本,我更喜欢保持默认包文件不变。

这样做的一个原因是它不会在下一次升级期间再次中断,这可能会重置000-default.conf文件。
此外,这样的修改不仅仅是为了惹恼我们,修改是有充分理由的,正如Debian 中的这个错误报告所解释的

我们的网络服务器 [原文如此] 将默认文档根目录设置为 /var/www,而站点本地管理员倾向于使用 /var/www/example.com。如果访问者访问默认文档根目录,绕过 example.com 的 /supposed/ 文档根目录,这会带来安全隐患。如果放置敏感数据,那会有问题吗?在假定的文档根之外(例如,考虑一个假设的 /var/www/example-com-db.conf 配置文件)。

一个更好的解决办法是站点文件从移动/var/www/var/www/html/

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/
Run Code Online (Sandbox Code Playgroud)

此外,另一种可能的解决方案是创建另一个虚拟主机并使用以下命令禁用默认主机 sudo a2dissite 000-default