【问题标题】:Can't upload big files in Wordpress无法在 Wordpress 中上传大文件
【发布时间】:2015-02-02 19:38:46
【问题描述】:

我在 wordpress 中上传大文件时遇到问题。我只能上传最大 40mb 的文件。 这是我的 htaccess 文件的外观

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress


## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 year"
</IfModule>
## EXPIRES CACHING ##


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>

php_value memory_limit 300M
php_value post_max_size 300M
php_value upload_max_filesize 300M

我的 php.ini:

upload_max_filesize= 300M
post_max_size= 300M
max_execution_time=3200 memory_limit = 300M
date.timezone=Europe/Sofia
memory=250M
expose_php=on
display_errors=on
allow_url_fopen=on
output_buffering=off
max_input_time=3600
session.gs_maxlifetime=3600
max_input_vars=1000
memory_limit=256M
extension=mysqli.so
extension=openssl.so

我在 wp-config 文件中设置了内存限制: 定义('WP_MEMORY_LIMIT', '300M');

这不是服务器主机问题。他们向我保证,问题不在他们身上。 我的问题是..我做错了什么?为什么我不能上传大于 40 MB 的文件。

【问题讨论】:

  • 您是否收到任何有意义的错误消息?
  • 我收到 http 错误。在发布请求中我得到:(失败)net::ERR_CONNECTION_RESET
  • 您的主机是否使用 suhosin?还有你尝试上传后的错误日志说什么?
  • 不,我的主机不使用 suhosin。我的日志文件中没有注册错误。

标签: php wordpress .htaccess


【解决方案1】:

这可能是一个问题的数量种方式。这里有一些可以帮助你的信息。

首先,您需要确保正在编辑正确的php.ini 文件。根据设置,通常有多个 php.ini 文件由特定虚拟主机的控制面板放置在系统上,有时在文档根目录中会覆盖系统版本。如果它也不能通过 .htaccess 工作。其他东西可能会覆盖它。

您可以通过使用验证设置是否生效

<?php
phpinfo();
?>

upload_max_filesizepost_max_size是需要通过php.ini更新的两个参数。

如果您使用PHP-FPM,也可以放入一些conf文件,它也可以从中读取。并且 PHP 的所有更改也需要重新启动 php-fpm。

有些系统使用suhosin,所以它会有一个需要更新的参数。

suhosin.post.max_value_length

Apache 还有一个名为LimitRequestBodyDirective。这很少会导致问题,但某些主机和 RHEL 系统将其设置得较低。如果太低,您将无法上传大文件,需要在php.conf 文件中调整此设置。

http://httpd.apache.org/docs/current/mod/core.html#limitrequestbody

例如LimitRequestBody 102400 以字节计

此外,如果您使用的是快速 cgi mod_fcgid,除了 php.ini 参数之外,它也有上传限制,看起来像这样。

<IfModule mod_fcgid.c>
  FcgidMaxRequestLen 26214400
  FcgidConnectTimeout 60
</IfModule>

在本例中,它设置为 25MB 和 60 超时。

仅供参考:我已经看到这些示例中的每个都在某个时间点导致上传问题。

即使您通常不需要这样做,但重新启动 apache 也不会造成伤害,以确保一切正常。

【讨论】:

  • @Oblivion 好的,如果我的回答对您有帮助,请接受并检查答案。
  • 这是我尝试上传大文件时的响应表单服务器:&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt; &lt;HTML&gt;&lt;HEAD&gt; &lt;TITLE&gt;413 Request Entity Too Large&lt;/TITLE&gt; &lt;/HEAD&gt;&lt;BODY&gt; &lt;H1&gt;Request Entity Too Large&lt;/H1&gt; The requested resource&lt;BR&gt;/www-bin/php54/wp-admin/async-upload.php&lt;BR&gt; does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit. &lt;/BODY&gt;&lt;/HTML&gt;
  • 哦,我以为你说它现在对你有用。嗯,你在wordpress设置中也改变了吗?这绝对是一个服务器配置问题。为什么不打开带有该错误消息的主机票?这就是他们在那里的目的,因为他们可以进入您的系统并进行查看。我不能这样做。你也可以确保不是这个httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html
  • 对不起,我的意思是不为我工作。我已经和他们谈过了,他们告诉我一切都很好,我没有理由不能上传大文件。
  • 显然是因为您没有想到该错误消息。他们听起来像是一家懒惰且非常糟糕的托管公司。我不会使用支持不佳的公司。与有权访问系统的人一起追查该错误应该不难。这是一个wordpress插件吗?
猜你喜欢
  • 2018-01-29
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 2017-12-22
  • 1970-01-01
  • 2017-02-14
  • 2013-08-24
相关资源
最近更新 更多