在apache2的2.4.7版本中,应该将我的本地网站放在哪里?

我最近安装了Ubuntu 14.04,然后安装了lamp-server并将我的网页放在/var/www目录下,但是当我在浏览器中打开本地主机时什么都没有显示。 我认为这可能是因为Zend更新了Apache导致的。 不管原因是什么,我想知道应该把我的PHP文件放在哪里,以便我可以从浏览器中访问它们。

虽然这不是对楼主问题的回答,但以下回答可能会帮助一些访问者在尝试解决相关问题时偶然发现这个问题:http://askubuntu.com/a/525120/1183 - augustin
2个回答

当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 的 这个错误报告 中找到了解释。 - Dan
6我在进行这个改变之后遇到了禁止访问的错误。 - Darshana
1@Darshana Apache2.4的默认配置不允许apache访问/var/www/html目录之外的任何内容。如果将您的站点放在该目录以外的任何位置(或其子目录),将会出现403错误。您需要在VHost配置中添加一个<Directory /path/to/your/site>指令,其中包含一个require指令 - Dan
这对我来说没用。 - user124384
我也是一样。现在它给我403禁止访问的错误!我应该如何解决它(请用简单易懂的方式)? - abhishah901
дёәд»Җд№ҲеңЁapache2.confж–Ү件дёӯеҸӘжңүжҢҮд»Ө<Directory /var/www/>иҖҢдёҚжҳҜ<Directory /var/www/html>е‘ўпјҹ - John Goofy

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

这样做的原因是为了避免在下次升级时再次出现问题,可能会重置000-default.conf文件。
此外,这样的修改并不是为了刁难我们,而是基于一个很好的理由进行的修改,正如Debian中的错误报告所解释的

我们的Web服务器将默认文档根目录设置为/var/www,而站点本地管理员倾向于使用/var/www/example.com。如果访问者绕过example.com的“预定”文档根目录,直接访问默认文档根目录,这就存在安全隐患。如果敏感数据放在预定文档根目录之外(例如,考虑一个假设的/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禁用默认主机。


  • 相关问题