我阅读了所有其他问题,但问题并未解决。我有一个带 lamp 的 Ubuntu 服务器 21.10(Apache 2.4.48),我使用 ln -s ~/Sviluppo/myWeb /var/www/myWeb 创建了一个符号链接,一切正常。然后在 apache 中创建了这个模块:
<VirtualHost *:80>
ServerName myWeb
DocumentRoot /var/www/myWeb/public
<Directory /var/www/myWeb>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /error.log
CustomLog /access.log combined
</VirtualHost>
我使用 启用了它sudo a2ensite myWeb
。然后我使用 设置权限
sudo chown -R www-data myWeb
现在我有一个禁止错误:您没有权限....
但同样的配置在 Ubuntu 20.04 中对我有效。看来 Apache 不遵循符号链接!我可以验证什么?再见。非常感谢。
答案1
在 Apache 2.4 中,Order
和allow
指令已被删除,取而代之的是Require
指令。
对于您的情况,您需要将这两行更改为以下内容:
Require all granted
即使进行了更改之后,如果仍然遇到问题,请确保用户www-data
具有该目录的读取权限。~/Sviluppo/myWeb
Apache 还需要对父目录的执行权限才能遍历该路径。
chmod o+x ~/
chmod o+x ~/Sviluppo
警告:请记住,最后两个命令将授予您系统上的任何用户访问您主目录的权限。因此,如果这是一个共享系统,我建议将您网站的代码放在主目录之外的某个地方,并授予您的用户读/写权限,并授予www-data
该目录上的用户读取权限。
答案2
解决方案:
<Directory /var/www/exams>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
和
chmod -R 775 ~/Sviluppo
chown -R www-data ~/Sviluppo/mysite