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


50

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

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


尽管不是OP的问题的答案,但以下答案可能会帮助一些在尝试解决相关问题时迷失
augustin

Answers:


76

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

/var/www/html

因此,从现在开始,这是您必须放置(本地)网站文件的地方。以后的更新中不应再有此问题。


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

DocumentRoot /var/www/html

DocumentRoot /path/to/another/directory

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

sudo service apache2 restart

10
有趣的是,我尝试寻找此举背后的原因。如果有人感兴趣,我会在Debian中找到此错误报告,对此进行了解释。
2014年

4
更改后,我收到了禁止的错误。
Darshana 2014年

1
@Darshana apache2.4中的默认配置不允许apache访问外部的任何内容/var/www/html。将您的网站放在该目录(或其子目录)以外的任何位置,将给您403错误。您需要将添加<Directory /path/to/your/site>指令到您的虚拟主机的configs一个require指令在里面。
2015年

这对我不起作用。
user124384

同样在这里..现在它使我禁止出现错误403!我应该如何解决(请以更简单,更简单的方式)
abhishah901 2015年

27

与其修改/etc/apache2/sites-available/000-default.conf回旧版本,不如不修改默认软件包文件。

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

我们的网络服务器[sic]将默认文档根目录设置为/ 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/

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.