【问题标题】:PHP still won't allow file uploads larger than 2 MBPHP 仍然不允许上传大于 2 MB 的文件
【发布时间】:2012-03-14 15:56:08
【问题描述】:

我在运行 Apache2 和 PHP 5.3.3-7 的 Amazon EC2 实例上安装了 Debian Squeeze。我希望它能够接受来自标准傻瓜相机(约 5 MB)的上传。因此,我在 /etc/php5/apache2/ 中编辑了 php.ini 以允许最多 18MB 的上传,并且我增加了 PHP 允许在脚本上工作的时间。

尽管重新启动了 Apache 甚至机器本身,但它绝对拒绝上传任何大于 2 MB 的文件。这是 EC2 问题还是仍然是 PHP 问题。我很确定我已经排除了它是 PHP 的所有可能性,但上周我一直盯着相同的 4 行代码,并像疯子一样搜索这可能是什么。

/etc/php5/apache2/php.ini:

max_execution_time = 120
...
max_input_time = 120
...
upload_max_filesize = 18M
...
post_max_size = 18M

我刚才用phpinfo()仔细检查了,这些设置是有效的,但是还是不行。

【问题讨论】:

  • 请与我们分享您在php.ini 中编辑的行和PHP 脚本。还要检查您的phpinfo() 以确保您的配置设置正确。

标签: php file-upload amazon-ec2


【解决方案1】:

问题很可能是Sohusin。 debian 上 APT 的默认软件包内置了 Sohusin。

这也会影响您的上传大小限制。查看此链接以获取修复和解释: http://www.cyberciti.biz/faq/linux-unix-apache-increase-php-upload-limit/

【讨论】:

  • 我在 phpinfo 中检查了 suhosin,它说它的限制设置为 0,但我可以上传较小的文件。只是没有更大的。无论如何,我在 /etc/php5/ 中找到的所有 suhosin.ini 文件的每一行都被注释掉了,所以我所做的任何更改都不会影响任何事情。我应该寻找不同的 suhosin 配置文件吗?
  • 你能链接到你的phpinfo吗?
【解决方案2】:

不知道这对您的设置是否有帮助?

在 Apache 中:

超时

服务器在请求失败之前等待某些事件的时间

LimitRequestBody

限制从客户端发送的 HTTP 请求正文的总大小

此外,在某些服务器设置上,您无法通过 scipts 更改 php.inp

【讨论】:

  • 是的,我已经在我的 php.ini 中编辑了这 3 行。我在 Apache 设置中的哪个位置编辑其他两个?
  • 它们是核心指令,除非您已经更改,否则您不需要更改。它们应该足够了,我认为问题出在其他地方。你检查过文件输入的限制吗?
  • 好的,我知道您可以直接访问您的服务器文件。这些设置看起来不错。上传后有消息吗?
  • 感谢您的帮助。我发现了这个错误(它在我自己的脚本中)。但是,我是新用户,现在无法删除/回答我自己的帖子。
  • 没问题,最好先检查自己的脚本:)
【解决方案3】:

检查php.ini 文件中的upload_max_filesizepost_max_size 设置

【讨论】:

  • 我更新了我的帖子以显示我从默认值修改的 php.ini 行。但正如我在描述中所说,编辑这些,重新加载服务器(甚至重新启动机器)都没有奏效。
  • 什么是 printphpinfo() 功能?在此函数的输出中,您可以看到使用了哪个 php.ini 文件,可能不是 /etc/php5/apache2/php.ini
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 2015-07-26
  • 2014-03-04
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多