将图像上传到多站点导致无法连接到HTTP错误

时间:2013-07-18 作者:Michael Ecklund

只是想告诉你我的情况。

正在运行WordPress多站点版本:3.5.2 clean install。

零第三方插件。我的所有插件都已被禁用以进行调试。

使用WordPress MU Domain Mapping 用于网络中的多个不同TLD。

我还欺骗了所有网络URL,以从本地服务器而不是现有的实时网络提供文件服务。

主机文件:vi /etc/hosts/

Might contain something like:

127.0.0.1 domain-a.com
127.0.0.1 www.domain-a.com
127.0.0.1 domain-b.com
127.0.0.1 www.domain-b.com
对于网络中的每个站点。。。。等

我这样做了,这样我就不必改变网站的URL和你拥有的东西。

每个网络站点上的一切都按预期工作。唯一的问题是上传媒体附件。无论出于何种原因,他们没有正确上传。用户是完整的管理员用户角色,因此它不能与权限相关。

我目前正在用PHP 5.4.6(FAST-CGI)运行Ubuntu 12.04。

上载图像时,我从WordPress得到一些非常普遍的错误。

Error 40 Year Old … to Life.jpg HTTP error.

Error 40 Year Old … to Life.jpg HTTP error.

将PHP从FAST-CGIMOD-PHP 我收到了WordPress更具体的回复。

Error 40 Year Old … to Life.jpg The uploaded file could not be moved to wp-content/uploads/sites/3/2013/07.

Error 40 Year Old … to Life.jpg The uploaded file could not be moved to wp-content/uploads/sites/3/2013/07.

我已签出目录:./wp-content/uploads/sites/3/2013/ 而且没有/07/ 自动创建。因此,我尝试手动创建它并从这两个站点再次上传FAST-CGIMOD-PHP, 仍然会出现相同的错误。

我看到了如下情况:./wp-admin/network/site-settings.php?id=3 在网络管理仪表板中,搜索与媒体相关的选项。

Uploads Use Yearmonth Folders => true
Upload Path => \'\' //blank
Upload Url Path => \'\' //blank
我已经检查了实时多站点网络以及其他多站点安装,它们似乎具有相同的设置。

然后我开始想可能是这样。htaccess相关。

当我去Network Admin -> Settings -> Network Setup

它告诉我使用:

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]
这就是我一直在使用的,除了开始时的轻微修改(紧接着RewriteEngine On) 允许非www URL重定向到www URL。

Example:

# DOMAIN-A Redirect non-www urls to www
RewriteCond %{HTTP_HOST} ^domain-a.com
RewriteRule ^(.*)$ http://www.domain-a.com/$1 [R=301,L]

# DOMAIN-B Redirect non-www urls to www
RewriteCond %{HTTP_HOST} ^domain-b.com
RewriteRule ^(.*)$ http://www.domain-b.com/$1 [R=301,L]
但是,这些规则与WordPress Codex explains. 我已经按照WordPress Codex尝试了这些建议,但在我的WordPress多站点网络中上传图像仍然没有成功。

我目前有SUBDOMAIN_INSTALL 根据WordPress Codex使用适当的重写规则设置为true。我也试过设置SUBDOMAIN_INSTALL 若为false,请再次。。。使用适当的重写规则。他们都没有纠正这个问题。

Live network(版本:3.5.2)安装也已停止允许上载图像。

我在多站点方面经验不足,不知道是什么导致了这个问题。我将继续对此进行调查,除非其他人知道如何解决此问题,请分享您获得的知识!

请注意,这完全不是内存问题。它甚至不会上传1kb的图像文件。

我已经尝试了中提到的所有可能的解决方案How to Fix HTTP Error When Uploading Images? 但还是没有成功。

使用Dashboard -> Media -> Add New -> browser uploader 而不是多文件上传程序,导致和内部服务器错误。

无论出于什么原因,我都能够一次又一次地上传这个随机的特定图像,没有任何问题,但我尝试上传的任何其他图像都失败了。。。甚至1kb大小的图像。

media uploader success

我可以上传一些图片,但不能上传其他图片。有些图像上载会引发内部服务器错误,有些则不会。有些可能是1kb,有些可能是5mb。绝对令人费解。

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

幸亏@s1lv3r@GhostToast 感谢他们在chat 我已找到问题所在。

如我的original question 当被问及上述问题时,我表示我已经对这两个方面进行了测试FAST-CGIMOD-PHP, 都在继续复制相同的错误。

stated in chat 我已经在Ubuntu 12.04和CentOS 5.9专用服务器上进行了测试。

这个chat message 通过@s1lv3r 最终是激发测试想法的人PHP-FPM 也你能看看吗?PHP-FPM 解开谜团!

我已经在Ubuntu 12.04和CentOS 5.9上进行了多次测试,没有启用插件、启用插件、启用股票主题和启用自定义主题。它毫无疑问地上传了每一张图像,无论大小——没有错误。

所以再一次,以防你没能早点抓住它。如果您在WordPress多站点上遇到类似症状。尝试启用PHP-FPM 在服务器上,或作为stated in chat 通过@s1lv3r 如果您使用FAST-CGI.

Enabling PHP-FPM solved this particular issue with WordPress multi-site causing an HTTP error upon image upload.

<人力资源>BoF EDIT 10/20/2016

如果WordPress Multisite出现HTTP错误,请考虑安装的配置方式。

There are two options for WordPress Multisite:

  1. 子目录安装
  2. 子域安装
    1. 我一直在管理一个站点网络,所有站点都使用“子目录”安装上的TLD。他们一直工作得很好。在文件上传过程中,它们突然出现了“HTTP错误”,并开始失败。

      这个问题只发生在WordPress中,问题是HTTP。所以WordPress和Apache都依赖一些东西。唯一常见的链接是.htaccess.

      如果你看到WordPress Codex :: .htaccess and Mod Rewrite 根据您为多站点配置的安装类型,重写规则实际上非常不同。

      我将“子目录”安装的重写规则替换为“子域”安装的相应重写规则。然后我也更新了wp-config.php 要更改define(\'SUBDOMAIN_INSTALL\', false); 到这个define(\'SUBDOMAIN_INSTALL\', true);

      繁荣问题已解决。对于网络中的每个站点,使用TLD在WordPress Multisite中上载文件时不再出现HTTP错误。

      EoF EDIT 10/20/2016

      <小时>

结束

相关推荐

在WordPress MultiSite的主主页中显示来自内部博客的自定义字段

我使用wordpress MU网络,我有主网站和所有内部博客。人们可能知道,在wordpress MU中,很难在主站点和内部博客之间建立“关系”。遗憾的是,关于wordpress MU的信息和来源也不够。(同时发布this 问题,但没有人回答)无论如何,为了在主站点主页中显示内部博客中的一些值,我必须使用以下插件:http://wordpress.org/plugins/wordpress-mu-sitewide-tags/这项工作做得很好,但并不完美。无论如何,我要做的是创建一个简单的自定义字段,在一个