我想建立一个根目录为 /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.
要禁用站点,请替换a2ensite
为a2dissite
。
答案2
旁边有一个配置,使用旧配置x.conf
调用x-le-ssl.conf
- 指向不再存在的目录的配置。Apache 改用了这个文件,因此抛出了 403 错误。只需更改此配置或重新创建它,它就会正常工作。sudo certbot --apache -m [email protected] -d example.com -d www.example.com