You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下Apache 2.4.53遇AH00037符号链接错误,求解决方案

解决方案:Apache 403 Forbidden(符号链接访问失败)

问题背景

环境信息:

  • Ubuntu 20.04.4 LTS
  • Apache/2.4.53 (Ubuntu)

访问http://160.55.56.28/artifacts时触发403错误,错误日志明确提示:

AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/artifacts

该符号链接指向/home/admin/.mits/packages/releases,已执行chown -R admin:admin相关权限命令并重启服务,问题未解决。

核心原因

Apache默认以www-data用户运行,即使符号链接本身权限正常,www-data也需要拥有目标路径所有父目录的遍历权限以及目标目录/文件的读取权限,否则无法正常访问链接指向的内容。

解决步骤

1. 确认Apache运行用户

执行命令验证Apache的运行用户:

ps aux | grep apache2

默认配置下,输出会显示www-data为Apache的运行用户。

2. 赋予父目录遍历权限

/home/admin及其子目录需要允许www-data遍历(execute权限),可选择两种方式:

  • 简单直接方式:给/home/admin添加其他用户的遍历权限
    chmod o+x /home/admin
    
  • 更安全的方式:将www-data加入admin组,再配置组权限
    sudo usermod -aG admin www-data
    chmod g+rx /home/admin /home/admin/.mits /home/admin/.mits/packages /home/admin/.mits/packages/releases
    

3. 确保目标目录文件可读取

给目标目录下的所有文件添加读取权限:

chmod -R g+r /home/admin/.mits/packages/releases

确认/var/www/html的Directory配置未覆盖FollowSymLinks(部分默认配置会单独设置/html目录),在/etc/apache2/apache2.conf或/etc/apache2/sites-available/000-default.conf中添加:

<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

5. 重启Apache服务

sudo systemctl restart apache2

6. 排查AppArmor限制(若上述步骤无效)

Ubuntu默认启用AppArmor,可能阻止Apache访问/home目录:

sudo aa-status

若看到apache2的profile处于enforce模式,修改/etc/apparmor.d/usr.sbin.apache2,添加一行:

/home/admin/.mits/packages/releases/** r,

然后重新加载AppArmor:

sudo systemctl reload apparmor

内容的提问来源于stack exchange,提问作者user4948798

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:21:00