上载带有PHP脚本的图像失败

上载带有PHP脚本的图像失败,php,apache,Php,Apache,我对PHP还比较陌生,但在使用自定义脚本通过ShareX将图像上传到我的服务器时,通过多个不同的脚本和服务器,我经常遇到一个问题 我已经迁移了服务器(我在一个共享主机上,现在我在一个VPS上),并且后来改为使用这个脚本,但是我仍然有这个问题,我不知道到底是什么问题 问题是(并非100%的情况下都会发生,但大多数情况下都会发生;有时在重试后会起作用)上传超过一定大小(约250-500KB)的图像会超时或大部分时间失败。60秒后,我在ShareX上收到一个502错误(坏网关) 我查找了类似问题的常见

我对PHP还比较陌生,但在使用自定义脚本通过ShareX将图像上传到我的服务器时,通过多个不同的脚本和服务器,我经常遇到一个问题

我已经迁移了服务器(我在一个共享主机上,现在我在一个VPS上),并且后来改为使用这个脚本,但是我仍然有这个问题,我不知道到底是什么问题

问题是(并非100%的情况下都会发生,但大多数情况下都会发生;有时在重试后会起作用)上传超过一定大小(约250-500KB)的图像会超时或大部分时间失败。60秒后,我在ShareX上收到一个502错误(坏网关)

我查找了类似问题的常见解决方案(“大型”文件在PHP中超时),并在PHP.ini文件中检查了以下变量

max_execution_time = 60
max_input_time = 60
memory_limit = 128M
post_max_size = 8M
当上传成功时,上传并返回上传图像的链接总共需要几秒钟,但当上传失败时,总是需要60秒,然后出错。没有中间地带,要么立即成功,要么在60秒后超时

我不知道怎样才能找到错误(如果有的话)。发生这种情况时,ShareX会报告一个(502)坏网关错误,“Response:”只是页面的源代码(脚本设置为在检测到您没有上传任何内容或失败时将您重定向到此页面),并且“堆栈跟踪”如下所示:

堆栈跟踪:

at System.Net.HttpWebRequest.GetResponse()
   at ShareX.UploadersLib.Uploader.UploadData(Stream dataStream, String url,     String fileName, String fileFormName, Dictionary`2 arguments,     NameValueCollection headers, CookieCollection cookies, ResponseType responseType, HttpMethod method, String requestContentType, String metadata)
编辑:我的服务器位于cloudflare之后,我了解到cloudflare可能会导致问题。但是,我已经检查了设置,cloudflare上的最大上载大小设置为100MB,暂停似乎没有帮助


编辑:我取消了对post_max_大小的限制,即8米,这似乎部分解决了这个问题。我现在可以上传高达3MB的内容,但之后它总是会失败,并显示来自脚本的自定义错误消息。

增加文件发布限制时,您可能需要更改至少2个设置:

上载\u最大\u文件大小=30M

立柱最大尺寸=32米


不要认为这与CloudFlare有关。如果上述设置不起作用,请查看是否可以检查Apache的错误日志。

可能是您应该尝试将post_max_sizeIt增加到8MB,但增加它没有帮助。对于大于几百KB的文件,而不是100%的时间,会出现此问题。是否尝试增加它?我在将文件上传到服务器时遇到了同样的问题。Php抛出了错误。当我增加帖子大小时,它对我来说效果很好。这太大了,如果不访问应用程序和服务器就无法调试。我认为您需要尝试分解每个部分,并测试流程的一小部分,以尝试跟踪问题。我建议您使用CloudFlare进行调查。确保在上载时您的HTTP流没有受到干扰。