尽管已授予所有权限,但 Apache2 仍出现 403 禁止错误

尽管已授予所有权限,但 Apache2 仍出现 403 禁止错误

我想建立一个根目录为 /home/x/y 的网站。问题是,我收到 403 Forbidden 错误,尽管配置文件设置正确,不是吗?以下是我编辑的配置和网站根目录的权限状态

输入

$ nano /etc/apache2/apache2.conf

输出

...
<Directory /home/x/y>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
...

输入

$ nano /etc/apache2/sites-available/x.conf

输出

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName x.y.org
    ServerAlias www.x.y.org
    DocumentRoot /home/x/y
    ErrorLog ${APACHE_LOG_DIR}/domain.com_error.log
    CustomLog ${APACHE_LOG_DIR}/domain.com_access.log combined

<Directory "/home/x/y">
   Order allow,deny
   Allow from all
   Require all granted
</Directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.x.y.org [OR]
RewriteCond %{SERVER_NAME} =x.y.org
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

输入

$ ls -ld x/

输出

drwxr-xr-x 7 root root 4096 Jan 25 21:18 x/

输入

$ ls -ld x/y/

输出

drwxrwxrwx 3 root www-data 4096 Jan 25 21:44 x/y/

编辑:是的,文件夹y的所有父目录都具有执行权限。

答案1

不要使用/etc/apache2/apache2.conf添加虚拟主机:

这是 Apache 服务器的主配置文件。它包含向服务器发出指令的配置指令。请参阅http://httpd.apache.org/docs/2.4/有关指令的详细信息以及 /usr/share/doc/apache2/README.Debian 关于 Debian 特定的 #hints。


/etc/apache2/sites-available/x.conf而是创建文件 的符号链接/etc/apache2/sites-enabled/x.conf,然后重新启动 apache。

sudo ln -s /etc/apache2/sites-available/x.conf /etc/apache2/sites-enabled/x.conf
sudo service apache2 restart

或者,有一个a2ensite命令可以自动执行此操作。.conf在 中创建一个文件sites-available,然后

sudo a2ensite whatever.conf. 

要禁用站点,请替换a2ensitea2dissite

答案2

旁边有一个配置,使用旧配置x.conf调用x-le-ssl.conf- 指向不再存在的目录的配置。Apache 改用了这个文件,因此抛出了 403 错误。只需更改此配置或重新创建它,它就会正常工作。sudo certbot --apache -m [email protected] -d example.com -d www.example.com

相关内容