为了给一些背景知识,我有一个允许用户上传图片的网站。 WordPress用作内容管理系统,帖子立即发布,图像作为帖子的特色图像插入。从那时起,图像以图库样式格式显示。近一年来,我在GoDaddy共享服务器上安装了该网站,上传的图片没有任何问题。随着网站的增长,我已将网站转移到亚马逊实例。在实例上是相应的MySQL数据库,虽然我不知道它应该被设置为一个单独的实例,从而降低了目前的成本。 Web /数据库服务器位于c3.xlarge实例上。不幸的是,大约50%的时间现在,当用户上传图像时,他们会收到错误[内部服务器错误]并创建一个空白帖子,随后将其包含在库中。显然,这是有问题的,因为图库中充满了空白图像,这会降低用户体验。当我查看WordPress的后端时,空白的帖子图像没有特色图像,并且帖子被归类为未分类。在这一点上,我认为问题源于服务器设置和与MySQL数据库的通信,但我正在抓住稻草。我在空白帖子的时候搜索了错误日志,我发现的唯一的事情如下:
[Sat Jun 14 19:23:51 2014] [error] [client xxx] (104)Connection reset by peer: FastCGI: comm with server "/usr/lib/cgi-bin/php5-fcgi" aborted: read failed, referer: http://example.com/upload/
[Sat Jun 14 19:23:51 2014] [error] [client xxx] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php5-fcgi", referer: http://example.com/upload/
[Sat Jun 14 19:27:51 2014] [error] [client xxx] (104)Connection reset by peer: FastCGI: comm with server "/usr/lib/cgi-bin/php5-fcgi" aborted: read failed, referer: http://example.com/upload/
[Sat Jun 14 19:27:51 2014] [error] [client xxx] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php5-fcgi", referer: http://example.com/upload/
在研究这个问题时,我发现有很多人建议增加php内存限制来解决这个问题。最近我将memory_limit从128M增加到256M甚至512M,但遗憾的是没有任何明显的影响。有什么想法吗?
答案 0 :(得分:0)
您可以清楚地看到,如果出现错误,会插入空白照片。相反,应该准确处理错误条件,不应插入图像。
这非常重要,因为需要关注上传处理的确切部分需要进行错误报告,以便您更好地了解此处出现的问题。
对于FastCGI特定问题,我假设他们只是说应用程序挂起,因此FCGI处理程序断开了后端 - 我不太熟悉亚马逊。
所以我说这是一个超时问题,而不是内存问题。
由于错误处理不足,您应该触摸整个上传工作流程,我可能会考虑限制文件上传大小片刻,同时让您的程序更加健壮。