我想编译无内存和超时限制模块的PHP7
。是可能的,还是有人有经验?
如PHP文档中所述:
与内存限制支持的编译。(由于php 5.2.1-始终启用,因此无法使用)
如果没有模块?
您可以通过更换
在编译时间中有效地禁用PHP的内存限制static PHP_INI_MH(OnChangeMemoryLimit)
{
if (new_value) {
PG(memory_limit) = zend_atol(ZSTR_VAL(new_value), (int)ZSTR_LEN(new_value));
} else {
PG(memory_limit) = 1<<30; /* effectively, no limit */
}
return zend_set_memory_limit(PG(memory_limit));
}
static PHP_INI_MH(OnChangeMemoryLimit)
{
PG(memory_limit) = 1<<30; /* effectively, no limit */
return zend_set_memory_limit(PG(memory_limit));
}
in/main/main.c
https://github.com/php/php/php/php-src/blob/9bcd2bcc21b7739a03acbe4e86dea1efef98c7f98c7fd/main/main/main/main.c#l157
请记住,在初始化期间调用一次功能以设置"默认值",这应该足够:)
同样,我认为有效禁用max_execution_time所需的一切是static PHP_INI_MH(OnUpdateTimeout)
函数的一个小补丁,只需在功能开始时用if (stage==PHP_INI_STAGE_STARTUP)
替换CC_3(https://github.com/php/php/php/php/php-src/blob/blob/blob/9BCD2BCC21B7739A03ACBE4E86DEA1EF98C7FD/MAIN/MAIN/MAIN.C#L299),它应该有效地永远保持无限。实际上还没有对其进行测试