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

Namecheap CPanel(LiteSpeed)中Laravel/Vue存储符号链接失效问题

Laravel存储符号链接在Namecheap CPanel(LiteSpeed)环境无法访问的解决办法

问题根源

根据错误日志提示,LiteSpeed在访问符号链接指向的storage/app/public/subfolder时,会尝试读取该目录下的.htaccess文件(尽管该目录实际不存在这个文件),但因权限不足触发报错;同时LiteSpeed与Apache对符号链接、.htaccess的处理逻辑存在差异,这是导致本地/Jelastic环境正常但CPanel LiteSpeed环境异常的核心原因。

解决步骤

1. 修复存储目录权限

确保storage/app/public及其子目录的权限允许Web服务器用户访问:

# 设置目录权限为755
chmod -R 755 storage/app/public
# 设置文件权限为644
chmod -R 644 storage/app/public/*
# 确保目录所有者为CPanel用户名(替换user为你的实际用户名)
chown -R user:user storage/app/public

2. 修改public目录的.htaccess规则

在项目public/.htaccess文件中添加LiteSpeed专属规则,禁止服务器读取符号链接目标目录的.htaccess:

<IfModule LiteSpeed>
    # 允许符号链接,仅当链接所有者与目标所有者匹配
    Options +SymLinksIfOwnerMatch
    # 禁用符号链接目标目录的.htaccess检查
    AllowOverride None
</IfModule>

如果只想针对storage目录生效,可替换为:

<Directory "/home/user/my-project/public/storage">
    <IfModule LiteSpeed>
        AllowOverride None
    </IfModule>
</Directory>

注意替换路径中的user和my-project为你的实际路径。

3. 用绝对路径重建符号链接

删除现有符号链接后,使用绝对路径重新创建,避免相对路径在LiteSpeed下的解析问题:

rm public/storage
ln -s /home/user/my-project/storage/app/public /home/user/my-project/public/storage

4. 检查LiteSpeed的符号链接配置

登录CPanel,找到LiteSpeed Web Server相关设置(通常在Advanced分类下),确认Follow SymLinks选项已启用,且SymLinksIfOwnerMatch配置处于生效状态。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:35:41