问题描述

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

当我登录到仪表板并添加一个新的帖子。然后尝试上传图像以设置为特色图像,我得到一个红色框与消息”HTTP Error” 。

我已经阅读了有关人们说不要使用 Flash 上​​传器,只是使用浏览器上传器,但是当我尝试,我只是得到一个 500 内部服务器错误。

我已经尝试在我的.htaccess 文件的顶部添加 AddType x-mapp-php5 .php,没有改变的运气。

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

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

最佳解决方案

在与 @Wyck 进行故障排除之后,我们已经缩小到基本问题。

这个问题与我的服务器配置没有适当的内存分配给 Apache /PHP 有关。

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

如果上述解决方案不起作用,请阅读本文 (Image/Media Uploader problems?) 以进一步解决问题。

尝试在 WordPress 安装的根目录中的.htaccess 文件中逐个或全部以下.htaccess 调整。

认真地,尝试下面的每个解决方案之一,所以你知道哪一个做的伎俩。不要将它们全部粘贴到您的.htaccess 文件中。

尝试这一行:

AddType x-mapp-php5 .php

mod_security 可能会导致问题。禁用它,看看是否是问题。为此,请将.htaccess 文件放在 wp-admin 目录中。添加到它:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

如果您使用基于 Web 服务器上的身份验证 (通常称为 htpasswd,基本身份验证,受密码保护的目录或类似的) 进行访问控制,则 WordPress 无法处理 Flash Uploader,Cron 和 XMLRPC 。相关文件需要排除工作。请记住,这可能会破坏您的安全考虑。

# Exclude the file upload and WP 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 multi-site,并且正在接收与图像上传相关的 HTTP 错误或内部服务器错误,请阅读 Uploading Images to Multi-Site Causes Failure to HTTP Error 以获取其他可能的故障排除思想和解决方案。

次佳解决方案

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。