Skip to content

问题现象

在调用微信公众号、微信支付或小程序接口时,系统抛出异常: Failed to create directory "/tmp/symfony-cache"file_put_contents(/tmp/easywechat.log): Permission denied


根本原因

微信 SDK(EasyWeChat / Symfony Cache)在默认情况下会将 access_token 和临时凭据缓存于操作系统的临时目录(通常为 /tmp/symfony-cache/ 或系统临时文件夹)。 当曾以 root 或不同用户(如 www-data)在命令行执行过脚本时,创建的临时缓存目录属于 root 用户。随后以 www 用户身份运行的 Swoole 守护进程在尝试写入该目录时,因权限不足而抛出 Permission denied 错误。


解决步骤

清理临时缓存目录

在服务器 SSH 终端中执行以下命令删除已存在的冲突临时缓存文件:

bash
rm -rf /tmp/symfony-cache*
rm -rf /tmp/easywechat*

统一运行身份为 www 用户

确保 Supervisor 中的守护进程是以 www 用户启动,避免产生新的 root 权限文件:

bash
supervisorctl restart ebaozu_v4

设置临时目录访问权限(如仍受限)

若系统临时目录有特殊的挂载限制,可执行以下命令确保临时目录具备读写权限:

bash
chmod 777 /tmp

重新发起微信请求后,EasyWeChat 将由 www 用户重新创建临时缓存文件,问题彻底解决。

承信租多门店租赁商城系统官方文档