上传图片时如何解决HTTP错误?


28

我正在使用Apache和PHP 5.3.X在Ubuntu 12.04上使用WordPress 3.4.1

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

我读过一些关于有人说不使用Flash上​​传器而只使用浏览器上传器的信息,但是当我尝试这样做时,我只会收到500 Internal Server Error。

我尝试AddType x-mapp-php5 .php在.htaccess文件的顶部添加内容,但没有任何变化。

禁用所有插件无效。我尝试重新安装。没运气。

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

要考虑的事项:

  • 文件所有权
  • 档案权限
  • .htaccess配置
  • PHP版本7+
  • WordPress当前版本

如果您在代理后面操作,请确保正确配置了代理服务器超时。

WordPress 3.4.1媒体上传HTTP错误


背后的原因是AddType x-mapp-php5 .php什么?这似乎是特定于服务器的。我认为它更有可能破坏您的网站(例如PHP)(如果幸运的话,什么也不做),而不是进行任何改进?
MrWhite

Answers:


25

我将以下代码放入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' );
}

当这样做有帮助时,是因为它更改了用于处理上载图像以与WordPress一起使用的PHP代码模块。

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

因为它是第一个,所以导致使用“ GD”模块。在某些服务器设置中,对于某些图像情况(例如大像素尺寸),较新的“ Imagick”库不能与其他库很好地配合使用,因此强制使用“ GD”库是一个解决方法。


创建一个小的插件比将其放入更好functions.php,因为如果更改主题,则会丢失代码。我确定您希望在更改主题后进行此操作
😊– EliasNS

1
+1在新HostGator帐户上使用现成的WP 4.9.4设置解决此问题时,这对我有用。@EliasNS noob在这里;为此制作一个小插件的正确方法是什么?
Andrew Janke '18

@AndrewJanke,您可以使用插件😅es.wordpress.org/ plugins/pluginception
EliasNS

“想像”?不是“ ImageMagick”
Peter Mortensen

21

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

该问题与我的服务器配置没有为Apache / PHP分配适当的内存量有关。

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

define('WP_MEMORY_LIMIT', '64MB');

如果上述解决方案不起作用,请阅读文章图像/媒体上传器有问题吗?进行进一步的故障排除。

尝试将以下.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.X,可以尝试禁用PHP安全模式。

如果您正在运行WordPress多站点并且收到与图像上传有关的HTTP错误或内部服务器错误,请阅读将图像上传到多站点导致HTTP错误),以获取其他可能的疑难解答和解决方案。


好的...知道...您是否读过WP尝试分配最多256MB的RAM,所以define('WP_MEMORY_LIMIT', '64MB');如果可能的话,应该更大。
达米安

1
如果您使用的AddType x-mapp-php5 .php是WP 4.1.1,则它不再是一个可行的解决方案,因为它会强制页面将PHP代码简单地打印为纯文本
cameronjonesweb

1
或者,如果您使用的是nginx,则将其添加到您的网站配置文件中:client_max_body_size 128m;
Flatron 2015年

4

尝试在wordpress中上载媒体时遇到了相同的错误。在Chrome中,它显示为http:错误;在Firefox中,错误看起来大不相同。网络上有很多人花了很多时间来追查该错误的故事(I :-()。解决方案比比皆是,但没有人解释其原因,至少不是以与症状相符的方式。

我值得庆幸的贡献:我注意到该问题与apache2日志文件中指示的分段错误有关。这使我不安,因为很难诊断。

重新启动整个服务器消除了所有症状,突然之间我可以在Wordpress中再次上传媒体。令人沮丧的是,我不知道为什么会这样。重新启动实际上使我无法进行任何进一步的研究,而现在我将不得不等待(几周?几个月?),以便问题再次出现。我希望这将有助于其他人寻找此问题的原因。不过,我的妻子很高兴,因为我再也无法花时间追求这个问题了……


1

我已将所有者从root更改apache为,从而解决了此问题。

chown -R apache:apache /var/www/html/mydomain

然后,我将的权限更改wp-content/uploads/775

之后,我尝试将图像上传到媒体中。我成功上传了图片。


0

我遇到过同样的问题。我尝试了各种修复程序,包括使用Force Image Magick插件将默认图像处理器从PHP GD更改为ImageMagick。

这有助于解决HTTP错误/ 500错误,但不再生成缩略图。然后,我再次停用了该插件,然后对我有帮助的是这个问题的答案好像图像调整大小无法正常工作。我PHP_MEMORY_LIMIT设置为160MB这是最大绝对我的主机供应商允许。

对于上传图像6000 x 6000 px,使用PHP GD并生成缩略图时,这会导致周围图像的最大可能尺寸。因此,不仅要检查文件大小,而且还要检查图像的大小,这一点很重要。即使尺寸较小的文件,上传尺寸较大的图像也会导致HTTP错误/错误500。


0

我已经经历过这样的问题很多次,并通过提高解决memory_limit = 256M在php.ini或添加define( 'WP_MEMORY_LIMIT', '256M' );wp-config.php文件(*如果需要,你可以增加内存以上256M)的大部分时间。

另一种可能的解决方案是授予\wp-content\uploads\文件夹权限;命令:chmod -R 0755 wp-content\uploads\

希望它也能对您有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.