我已成功将 wordpress 服务器迁移到新的 VPC(Amazon),但 php-fpm 似乎无法处理图像上传。当我上传图像时,它只上传了一部分,然后就停滞了,甚至根本无法启动。之后它就挂起了。
如果我重新启动 php-fpm,服务器就会恢复运行,但图像显然没有上传。
所以我猜这是 php-fpm 无法处理文件上传的问题。我已打开 php-fpm 日志记录,但它没有抛出任何错误,只有守护进程启动/停止
[26-Sep-2014 09:17:24] NOTICE: Terminating ...
[26-Sep-2014 09:17:24] NOTICE: exiting, bye-bye!
[26-Sep-2014 09:17:24] NOTICE: fpm is running, pid 290
[26-Sep-2014 09:17:24] NOTICE: ready to handle connections
[26-Sep-2014 09:17:24] NOTICE: systemd monitor interval set to 10000ms
nginx 中的错误日志如下所示
2014/09/26 09:17:24 [error] 276#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 176.32.75.158, server: ec2-54-64-187-3.ap-northeast-1.compute.amazonaws.com, request: "POST /wp-admin/async-upload.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "ec2-54-64-187-3.ap-northeast-1.compute.amazonaws.com", referrer: "http://ec2-54-64-187-3.ap-northeast-1.compute.amazonaws.com/wp-admin/media-new.php"
正如您在该错误中看到的,php-fpm 在接收到处理文件的调用时挂起。
我已经将 php-fpm 的日志记录提升到错误级别,但在重现错误时我得到的最多信息是
[pool www] server reached pm.max_children setting (5), consider raising it
我已经提高了 pm.max_children 但没有效果,问题仍然存在
我在其他地方找不到任何相关错误,此时我非常迷茫
有人经历过这种情况吗?可以告诉我问题出在哪里吗?
答案1
如果您使用 Cloudflare 或类似程序,则第三方服务上的文件上传可能会达到限制。如果没有,我会检查 Web 服务器的上传大小。php 上传中有 2 个变量:
upload_max_filesize 和 post_max_size
两者都应高于文件上传大小。内存可能也需要与之匹配,这取决于脚本。最后,根据 Web 服务器的不同,可能会有类似的限制:nginx 中的 client_max_body_size 也应高于上传文件大小。