无论localhost
我请求哪种资源,我都会得到403 禁忌HTTP 错误。我有 Apache(包含在 Debian 10 发行版中),并cat /var/log/apache2/error.log
给了我以下相关行:
[Sun Aug 09 22:55:01.943309 2020] [authz_core:error] [pid 3568] [client ::1:48672] AH01630: client denied by server configuration: /home/morten/NetBeansProjects
我可能会提供localhost
或localhost/existing_url
或localhost/wrong_url
-- 全部给我相同的 HTTP 403 错误和相同类型的错误日志条目。
权限:
$ ls -l | grep NetBeansProjects
drwxr-xr-x 4 morten morten 4096 aug 9 20:25 NetBeansProjects
和
$ ls -l Dropbox/NetBeansProjects/
totalt 620
drwxr-xr-x 3 morten morten 4096 aug 9 20:25 bedom
drwxr-xr-x 3 morten morten 4096 aug 2 17:05 ElevMonitorering
-rwxrwxrwx 1 morten morten 5 aug 6 09:49 index.html
和
ls -l Dropbox/NetBeansProjects/bedom/
totalt 8
-rwxr-xr-x 1 morten morten 406 aug 9 20:27 index.php
drwxr-xr-x 3 morten morten 4096 aug 9 20:25 nbproject
在 Apache2 中,/etc/apache2/apache2.conf
显示以下(选定的)行:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
# <Directory /var/www/>
<Directory /home/morten/Dropbox/NetBeansProjects>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
同时/etc/apache2/sites-available/default-ssl.conf
有:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /home/morten/Dropbox/NetBeansProjects # /var/www/html
并且同时/etc/apache2/sites-available/000-default.conf
显示:
<VirtualHost *:80>
DocumentRoot /home/morten/NetBeansProjects
所以我的问题是:我需要更正什么才能获取 URL 的内容localhost/index.php
(而不是错误 403)?
编辑
添加后localhost.localdomain
根据这个答案,只有http://localhost/index.php
给我带来麻烦,但我可能在生产目的中不需要该索引文件,所以我将留下这个问题。我认为它已经解决了所需的http://localhost/bedom/index.php
响应。请参阅我自己对自己的评论。羞于承认,404 是完全微不足道:虽然存在,但我在文件夹根目录中index.html
请求...index.php
localhost
答案1
所有文件夹、整个路径必须获得所有人的许可,或者准确地说:Web 服务器守护进程,读取并执行。也就是说,路径/home/morten/NetBeansProjects
必须像这样显示:
ls -l / | grep home
drwxr-xr-x 3 root root 4096 maj 27 22:08 home
$ ls -l /home | grep morten
drwxr-xr-x 28 morten morten 4096 aug 10 22:23 morten
$ ls -l /home/morten | grep Dropbox
drwxr-xr-x 32 morten morten 4096 aug 10 22:25 Dropbox
$ ls -l /home/morten/Dropbox/ | grep NetBeansProjects
drwxr-xr-x 4 morten morten 4096 aug 9 20:25 NetBeansProjects
withr
和x
set 为所有者、组和其他设置。这将在问题中提到的我的设置中得到纠正。
然后,该文件/etc/apache2/sites-available/000-default.conf
应包含指令中 Web 服务器根目录的正确路径DocumentRoot
。
此外,该/etc/apache2/apache2.conf
文件应引用与以下内容相同的文件夹:
<Directory /home/morten/Dropbox/NetBeansProjects>
我想这就是修复 403 的全部了。