【发布时间】:2017-10-23 09:26:06
【问题描述】:
我是 Linux 和 Apache 的新手。我尝试将 Apache2 配置为服务于我在本地 Linux Mint 机器上开发的网站。我还没有尝试过使用PHP。
尽管尝试按照所有说明进行操作,但我仍然收到 404 Not Found 或 403 Forbidden。
保存网站的目录名是Web,有权限
drwxr-xr-x 4 www-data www-data 4096 May 15 18:46 Web
我也尝试了自己的用户组,但没有成功。 Web 中的所有文件对 Group 和 Others 都具有通常的 r-x 或 r-- 权限。
/etc/hosts 是
127.0.0.1 localhost
/etc/apache2/ports.conf 是
Listen 127.0.0.1:80
/etc/apache2/sites-available/Web.conf 是
<VirtualHost 127.0.0.1:80>
ServerName Web
ServerAdmin webmaster@localhost
DocumentRoot /xxx/xxxx
</VirtualHost>
请注意,/xxx 是我在本地计算机上的自定义分区,而 xxxx 是此分区中的目录。
/etc/apache2/sites-enabled 是
lrwxrwxrwx 1 root root 27 May 23 13:04 Web.conf -> ../sites-available/Web.conf
最后,/etc/apache2/apache2.conf 包含了这个
<Directory /xxx/xxxx/Web/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
我终于让 localhost 工作了,但不是如上。我只是在 /var/www/html 中创建了指向 Web 目录的链接。
/var/www/html 是
-rw-r--r-- 1 root root 11321 Apr 14 15:11 index.html
lrwxrwxrwx 1 root root 17 May 22 16:54 Web -> /xxx/xxxx/Web
这在 apache2.conf 中没有任何机会,我不必启用该站点(与 a2ensite 建立链接)。
网址
localhost/Web
现在可以正常工作了。
它有效,但它不可能是正确的方法。我究竟做错了什么?
【问题讨论】:
-
您是否在更改其配置后重新加载了 Apache 配置或重新启动了服务器?在 Ubuntu/Debian 上,可以使用
sudo service apache2 reload来完成。尝试重新加载并适当地编辑您的答案。 -
是的,每次有机会我都会这样做,要么 sudo service apache2 reload 要么 sudo service apache2 restart 。
-
日志是怎么说的?
-
/var/log/apache2 中的错误日志仅在我每次重新加载 Apache 时报告。访问日志通常只显示:
localhost:80 127.0.0.1 - - [23/May/2017:15:43:52 +0200] "GET /Web/ HTTP/1.1" 404 494 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.我不知道如何从日志中获取更多信息。 -
我看到这篇文章有很多点击率。因此,我认为有必要(两年后)澄清这个问题。如果您托管 多个 localhost 网站,请在 /var/www/html 中为每个网站添加一个链接。另外,需要在apache2.conf中添加文件夹权限。我希望这对其他人有所帮助。