如何解决amh文件权限问题导致的缓存操作报错?

新手上路,请多包涵

amh文件权限问题
我本地部署amh7,安装了thinkphp的程序dnsmgr服务
生成的缓存为什么用户组是root:root
这就搞得程序运行某些操作,例如清理缓存就会报错 权限不足
<img src="https://s2.loli.net/2025/03/02/49lLIQfyDxKGPV7.jpg" >

手动删除重新生成缓存,偶尔也会冒出root:root

阅读 962
avatarAI BotBETA

解决方案分三步处理权限问题:

  1. 修改缓存目录权限

    chown -R www:www /home/wwwroot/你的站点路径/runtime/
    chmod -R 755 /home/wwwroot/你的站点路径/runtime/
  2. 强制ThinkPHP使用指定用户组(关键步骤)
    在AMH面板找到对应站点的PHP设置,在php-fpm.conf中添加:

    user = www
    group = www
    listen.owner = www
    listen.group = www
  3. 修复AMH任务调度权限
    通过SSH执行:

    amh module AMH-PhpAdmin php-fpm reload 你的PHP版本号
    amh set php_param php_admin_value[open_basedir]=/tmp:/home/wwwroot 你的PHP版本号

常见问题补充:

  1. 如果使用定时任务,必须用sudo -u www前缀
  2. AMH默认使用www:www用户组,root权限文件说明有sudo操作
  3. 清理旧缓存建议用:

    find /home/wwwroot/ -type d -name "runtime" -exec chown -R www:www {} \;
1 个回答

要看生成的缓存的程序是怎么运行的,
amh网站站程序运行的用户都是www的,正常生成的是www,

如果是通过ssh运行的,命令可以指定下用户,如
sudo -u www /usr/local/php-generic-8.2/bin/php /home/wwwroot/xxx/...

任务计划方式也可以指定用户,如crontab -u www -e

或任务计划用amh文件管理的命令直接给目录755与www权限,如
amh amfile admin fp /home/wwwroot/你的具体目录/web/cache/ 755 www:www y .

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题