Apache 无法解析 /var/www 中的符号链接

Apache 无法解析 /var/www 中的符号链接

我阅读了所有其他问题,但问题并未解决。我有一个带 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 中,Orderallow指令已被删除,取而代之的是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

相关内容