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

CentOS 8.4下Laravel 8 storage缓存ee文件夹权限错误致jwt-auth报错

问题核心原因

你遇到的权限异常本质是两个常见的部署配置疏漏:

  1. 你大概率用root用户执行Deployer部署命令/运行Laravel CLI命令,新生成的缓存子目录默认继承执行用户的所有者权限,导致子目录归属root
  2. Deployer的默认权限配置没有递归覆盖shared存储目录下的动态生成子目录,Laravel默认的文件权限掩码也没有强制设置归属规则

你看到的file_put_contents报错提示No such file or directory属于系统误导性提示,本质是apache用户没有权限在归属root的ee目录下创建子目录和文件。

永久解决方案

1. 修正Deployer部署配置

这是最优先的修复项,从部署流程层面强制权限规则:

  • 在你的deploy.php配置文件中添加如下全局配置,指定web服务运行用户和可写目录的权限处理模式:
// 指定web服务运行用户
set('http_user', 'apache');
set('http_group', 'apache');
// 可写目录使用chown修改所有者,而非仅修改权限位
set('writable_mode', 'chown');
// 额外指定storage目录为可写目录
set('writable_dirs', [
    ...get('writable_dirs'),
    'storage',
]);
  • 添加部署后置钩子,在每次部署完成后递归修正存储目录的权限,避免动态生成的子目录权限异常:
task('deploy:fix_storage_perm', function () {
    run('chown -R apache:apache {{deploy_path}}/shared/storage');
    run('chmod -R 775 {{deploy_path}}/shared/storage');
});
// 在软链接切换完成后执行权限修正
after('deploy:symlink', 'deploy:fix_storage_perm');
  • 先手动执行一次命令修正现有shared存储目录的所有权限:
    chown -R apache:apache /var/www/project-beacon-api/shared/storage && chmod -R 775 /var/www/project-beacon-api/shared/storage

2. 修正Laravel框架的文件权限配置

从应用层面强制生成的文件/目录权限符合要求:

  • 打开config/filesystems.php,修改本地存储磁盘的配置,添加权限规则:
'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
        // 新增权限配置
        'permissions' => [
            'file' => 0664,
            'dir' => 0775,
        ],
    ],
    // 如果你单独配置了缓存磁盘,也要给对应磁盘添加相同的permissions配置
],
  • 所有Laravel CLI命令(包括任务调度、队列消费、缓存清理等)都必须用apache用户执行,禁止用root运行:
    • 任务调度写到apache用户的crontab中:执行crontab -u apache -e添加调度规则
    • 队列服务的systemd配置文件中指定User=apache、Group=apache

3. 验证修复效果

用apache用户执行缓存清理命令,避免root生成缓存文件:
sudo -u apache php artisan cache:clear
之后访问API触发JWT鉴权逻辑,查看新生成的storage/framework/cache/data下的子目录所有者是否为apache:apache,确认无权限报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:06:02