如何修复上传图片时出现的HTTP错误?

时间:2012-07-26 作者:Michael Ecklund

我使用Apache和PHP 5.3在Ubuntu 12.04上使用WordPress 3.4.1。十、

当我登录到仪表板并添加新帖子时。然后尝试上传一幅图像,设置为特色图像,我会看到一个红色框,上面有一条消息“HTTP错误”。

我曾读到有人说不要使用flash上传器,而只使用浏览器上传器,但当我尝试这样做时,我只收到一个500内部服务器错误。

我已尝试添加AddType x-mapp-php5 .php 在我的顶部。htaccess文件,没有更改的机会。

禁用所有插件没有任何效果。我尝试了新的安装。没有运气。

Update 10/17/2016 - 如果您使用的是自定义角色或功能,请尝试使用本机角色/功能,然后重试。

Things to consider checking:

<文件所有权文件权限。htaccess配置PHP版本7+WordPress当前版本如果您在代理后操作,请确保正确配置了代理服务器超时。

WordPress 3.4.1 Media Upload HTTP Error

6 个回复
最合适的回答,由SO网友:Michael Ecklund 整理而成

在聊天中使用@Wyck进行故障排除后,我们已经缩小到了根本问题。

这个问题与我的server configuration 没有为Apache/PHP分配适当的内存量。

如果有人有同样的问题,请尝试验证在服务器配置设置中是否有足够的(64 MB以上)服务器内存分配给Apache/PHP。您还可以将其添加到wp配置中。php文件:

define(\'WP_MEMORY_LIMIT\', \'64MB\');
如果上述解决方案无效,请阅读文章Image/Media Uploader problems?以进行进一步的故障排除。

尝试逐个添加或全部添加以下内容。htaccess调整到。WordPress安装根目录中的htaccess文件。

说真的,试一下下面的每个解决方案中的一个,这样你就知道是哪一个解决了问题。不要只是将它们全部粘贴到您的中。立即访问htaccess文件。

试试这句话:

AddType x-mapp-php5 .php
mod_security 可能会导致问题。禁用它以查看这是否是问题所在。为此,请制作一个。wp admin目录中的htaccess文件。添加以下内容:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
如果您在Web服务器上使用基于身份验证的访问控制(通常称为htpasswd、基本身份验证、密码保护目录或类似内容),WordPress无法为Flash Uploader、Cron和XMLRPC处理它。需要排除相关文件才能工作。请记住,这可能会破坏您的安全考虑。

# Exclude the file upload and WordPress CRON scripts from authentication
<FilesMatch "(async-upload\\.php|wp-cron\\.php|xmlrpc\\.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>
最后一点注意:有些人说,如果使用PHP 5.3的较低版本。您可以尝试禁用PHP安全模式。

如果您正在运行WordPress多站点,并且收到与图像上载相关的HTTP错误或内部服务器错误,请阅读Uploading Images to Multi-Site Causes Failure to HTTP Error)了解其他可能的故障排除想法和解决方案。

SO网友:Allen

我将以下代码放入functions.php 文件它起作用了!

add_filter( \'wp_image_editors\', \'change_graphic_lib\' );

function change_graphic_lib($array) {
  return array( \'WP_Image_Editor_GD\', \'WP_Image_Editor_Imagick\' );
}
这之所以有用,是因为它更改了用于处理上载图像的PHP代码模块,以便与WordPress一起使用。

此处理包括将图像移动到媒体库数据库中,并生成WordPress始终希望主题访问的不同大小的图像(“缩略图”、“中”、“大”)。

它导致使用“GD”模块,因为它是第一个。在某些服务器设置中,较新的“Imagick”库在某些图像场景(如大像素尺寸)中无法与其他库配合使用,因此强制使用“GD”库是一个解决方案。

SO网友:Stef Joosten

我在wordpress中上传媒体时也遇到了同样的错误。在Chrome中,它显示为http:error;在Firefox中,错误看起来非常不同。网络上充斥着那些花了几天时间来追踪这个bug的人的故事(我也是:-())。解决方案比比皆是,但没有人解释原因,至少不能以与症状一致的方式解释。

我的宝贵贡献:我注意到这个问题与apache2日志文件中的分段错误有关。这让我很不安,因为很难诊断。

重新启动整个服务器消除了所有症状,突然我可以在Wordpress中再次上传媒体。令人沮丧的是,我不知道为什么会发生这种情况。重启有效地阻止了我进一步的研究,我现在不得不等待(几周?几个月?)使问题再次出现。我希望这将帮助其他人寻找这个问题的原因。不过,我妻子很高兴,因为我再也不能花上几个晚上来解决这个问题了。。。

SO网友:imran

我已通过将我的所有者从rootapache 如下所示。

chown -R apache:apache /var/www/html/mydomain
然后我更改了wp-content/uploads/775.

之后,我尝试在媒体上上传图像。我成功上传了图像。

SO网友:intagli

我也有同样的问题。我尝试了各种修复,包括使用Force Image Magick Plugin

这有助于解决HTTP错误/500错误,但不再生成缩略图。然后我再次停用了插件,然后帮助我的是answer 关于这个问题Looks like image resize is not working well. 我的PHP_MEMORY_LIMIT 已设置为160MB 这是我的主人允许的绝对最大值。

对于上载图像,这会导致图像的最大可能尺寸约为6000 x 6000 px 使用PHP GD并生成缩略图时。因此,不仅要检查文件大小,还要检查图像的尺寸,这一点很重要。上载维度更高的图像会导致HTTP错误/错误500,即使文件大小很小。

SO网友:rony2k6

我经历过多次这样的问题,通过增加memory_limit = 256M 在php中。ini或添加define( \'WP_MEMORY_LIMIT\', \'256M\' ); 在里面wp-config.php 文件(*如果需要,可以将内存增加到256M) 大多数时候。

另一种可能的解决方案是允许\\wp-content\\uploads\\ 文件夹命令:chmod -R 0755 wp-content\\uploads\\.

希望它也能帮助你。

结束

相关推荐

无法将数据上载到Media Libary

我把wordpress上传到了我的服务器。目前一切正常。但当我尝试将数据上传到媒体库时,什么都没有发生。无论我是否单击“选择文件”或“浏览器上载器”,都不会发生任何事情。我以前从未遇到过这种问题。wp内容/上载/文件夹的权限位于777上。我完全没有结论这里会有什么问题?有什么建议吗?你好,尼尔斯