PHP编译没有内存限制

时间:2016-12-16 21:35:05

标签: php

我想编译PHP7没有内存和超时限制模块。 有可能,还是有人有经验?

如PHP文档中所述:

  

编译内存限制支持。 (自PHP 5.2.1以来不可用 - 始终启用)

没有模块可以编译吗?

1 个答案:

答案 0 :(得分:0)

您可以通过替换

在编译时有效地禁用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));
}
在/main/main.c

https://github.com/php/php-src/blob/9bcd2bcc21b7739a03acbe4e86dea1efef98c7fd/main/main.c#L157

请记住,在初始化期间调用此函数一次以设置“默认值”,这应该足够了:)

同样地,我认为有效禁用max_execution_time所需的只是static PHP_INI_MH(OnUpdateTimeout)函数的一个小补丁,只需在函数开头用if (stage==PHP_INI_STAGE_STARTUP)替换if(1) {{3它应该永远有效地保持无限。实际上没有测试过它