我们刚刚注意到一个问题,我们的一些开发人员使用 ini_set('memory_limit', -1) 来覆盖其代码文件中的 php.ini memory_limit 设置。
因此,有时我们的内存/CPU 使用率远远高于平时,我们甚至多次遇到服务器挂起/崩溃的情况。
有没有办法限制某些参数(如 memory_limit、upload_max_filesize 和 post_max_size)的更改?在设置了某个限制后,用户就不能再编辑它们了?
抱歉,我问了一个愚蠢的问题,我尝试搜索,但没有找到有关此问题的参考,只找到要求增加这些参数的答案。
答案1
我知道有两种选择可以至少实现部分目标。
首先是 php safe_mode,这可能会给你的开发人员带来很多额外的工作。
安装后,您可以编辑 /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 问题以供参考