我在使用 PHP-FPM 和文件上传时遇到了 php 5.3.6 的问题。
我的 Nginx 以用户 nginx 的身份运行,PHP-FPM 使用为每个 vhost 配置的池。例如,用户:测试组:测试运行一个池。
当 php 文件上传到临时文件时,它归用户 test 所有。在 move_uploaded_file 由 php 脚本执行后,它归 nginx :/ 所有。
我不知道将所有权更改为 Web 服务器是否是正确的行为。PHP 中是否有方法将所有权更改回我想要的用户?(无需使用 php chown 方式,因为它需要 root 权限)
答案1
经过新的一天的开始和大量的背部锻炼后,我终于坐下来再次解决这个问题。我发现我让 nginx 指向了错误的池。我这样做是因为会话路径给出了权限被拒绝的错误。这个其他池是用户“nginx”的默认池。因此,我通过编辑 php.ini 并将其指向 /tmp 解决了会话保存路径问题。这是唯一有效的方法,默认值在 centos 上不起作用。即 /tmp/session 适用于多个池。因此再次回到问题,使用正确池的新设置可以正常工作。
菜鸟胜利!