限制覆盖 php.ini 中的 memory_limit

限制覆盖 php.ini 中的 memory_limit

我们刚刚注意到一个问题,我们的一些开发人员使用 ini_set('memory_limit', -1) 来覆盖其代码文件中的 php.ini memory_limit 设置。

因此,有时我们的内存/CPU 使用率远远高于平时,我们甚至多次遇到服务器挂起/崩溃的情况。

有没有办法限制某些参数(如 memory_limit、upload_max_filesize 和 post_max_size)的更改?在设置了某个限制后,用户就不能再编辑它们了?

抱歉,我问了一个愚蠢的问题,我尝试搜索,但没有找到有关此问题的参考,只找到要求增加这些参数的答案。

答案1

我知道有两种选择可以至少实现部分目标。

首先是 php safe_mode,这可能会给你的开发人员带来很多额外的工作。

苏霍辛www.hardened-php.net

安装后,您可以编辑 /etc/php5/conf.d/suhosin.ini 并设置:

suhosin.内存限制 = 512M

引自手册1

suhosin.memory_limit

Type: Integer
Default: 0

只要脚本不在 safe_mode 下运行,它们就可以随意将 memory_limit 更改为它们想要的任何值。Suhosin 改变了这一事实,当此选项保留为 0 时,不允许将 memory_limit 设置为大于脚本开始时的值。大于 0 的值意味着 Suhosin 将不允许脚本将 memory_limit 设置为高于此配置的硬限制的值。例如,如果您想以 16M 的限制正常运行脚本,但图像处理脚本可能会将其提高到 20M,这将很有用。

Stackoverflow 问题以供参考

相关内容