5

我有一个运行 PHP 脚本的 Apache 服务器,该脚本通过具有多个字段的 POST 请求接收数据。其中一个字段可能很长,当它达到 512 kB 和 1 MB 之间的某个位置时,它会被丢弃,即接收到的 POST 根本不包含该字段,但其他字段存在且正常。

以下是当前的相关设置php.ini

upload_max_filesize = 64M
memory_limit = 128M
post_max_size = 128M
suhosin.post.max_value_length = 64000000
suhosin.request.max_value_length = 64000000

我试图在单个 POST 变量中发送 1024 * 1024 个符号,并且该变量仍然被丢弃。

PS 找不到如何获取 Suhosin 的日志。

更新:我已通过指定禁用 Suhosin suhosin.simulation = On,现在长数据已成功进入我的 PHP 脚本。问题是我不想完全禁用 Suhosin,我只需要调整限制。

4

4 回答 4

1

我补充说:

suhosin.post.max_value_length = 64000000 suhosin.request.max_value_length = 64000000

在 suhosin.ini 中,它起作用了。

php.ini 中的设置:

upload_max_filesize = 64M memory_limit = 128M post_max_size = 128M

于 2014-01-15T08:51:53.457 回答
1

尝试起来:

  • post_max_size
  • 上传最大文件大小
  • 内存限制
于 2012-07-04T14:35:33.993 回答
1

lightster 在这里的回答如何增加 PHP 中的最大 POST 变量?当 suhosin 配置没有时帮助我:

“PHP 5.3.9 引入了 max_input_vars 配置选项,默认值为 1000。查看 PHP 手册的运行时配置部分。默认值和更改日志位于页面顶部。

可以通过更新服务器的 php.ini、添加 .htaccess 文件或在 httpd.conf 中添加一行来更改该值。”

我将其设置在 .htaccess 中:

php_value max_input_vars 2000

于 2012-07-16T22:17:17.770 回答
0

不得不禁用 Suhosin。仍然不确定哪个设置负责,因为我在问题中指定的设置没有帮助。

于 2012-07-12T06:57:38.083 回答