PHP编译而无需内存限制

  • 本文关键字:内存 编译 PHP php
  • 更新时间 :
  • 英文 :


我想编译无内存和超时限制模块的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),它应该有效地永远保持无限。实际上还没有对其进行测试

最新更新