我的设置:
ubuntu 22.04
Apache/2.4.52 (Ubuntu) Server
I created /etc/apache2/sites-available/test.mysite.conf:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.xxxxxxxx.com
DocumentRoot /home/test/deploy/current
<Directory /home/test/deploy/current>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/test/error.log
CustomLog ${APACHE_LOG_DIR}/test/access.log combined
</VirtualHost>
我禁用了内置的 000-default.conf,如下所示:
sudo a2dissite 000-default.conf
并验证它不再位于 /etc/apache2/sites-enabled
并启用虚拟主机:
sudo a2ensite test.mysite.conf
并验证它现在位于 /etc/apache2/sites-enabled
我确认配置没有问题:
sudo apache2ctl configtest
并重新启动 apache 服务器:
sudo systemctl restart apache2
以下是权限列表
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-x--- test test test
drwxr-xr-x test test deploy
drwxrwxr-x test test current
-rw-rw-r-- test test index.html
这是在 AWS 上托管的,所以我也去了 AWS,并验证了安全组的入站规则,允许从我的家庭 IP 地址进行连接(我有一个固定的 IP 地址)。我也没有在服务器上启用防火墙。
但当我这样做http://test.xxxxxxxx.com
我在浏览器中收到以下消息:
Forbidden
You don't have permission to access this resource.
Apache/2.4.52 (Ubuntu) Server at test.xxxxxxxx.com Port 80
有任何想法吗?
答案1
中的权限/home/test/
太受限制。
drwxr-x--- test test test
除此以外,任何人都test
不被允许进入该目录,因此 Apache 无法读取它。
/home/
无论如何都不是放置 webroot 的正确位置。请/var/www
改用。