2016-12-16 5 views
-1

Ich möchte ohne Speicher und Timeout-Limit-Modul kompilieren. Ist es möglich, oder hat jemand Erfahrung?PHP kompilieren ohne Speicherlimit

Wie in der PHP-Dokumentation angegeben:

Compile mit Speicherlimit Unterstützung. (nicht verfügbar seit PHP 5.2.1 - immer aktiviert)

Gibt es eine Möglichkeit, ohne das Modul zu kompilieren?

+1

Sie können das Speicherlimit nicht zur Kompilierzeit entfernen, aber Sie können die 'memory_limit' auf -1 in php.ini oder über' ini_set' setzen, was den gleichen Effekt hat. – alzee

+0

Und Sie sollten vermeiden, PHP ohne Zeit-/Speicherbeschränkungen auf Ihrem Webserver zu hosten. –

+0

thx, ich möchte es nicht als gehostete php-version verwenden, ich möchte sie als "service" verwenden, grüße – user3549136

Antwort

0

können Sie effektiv durch die Speichergrenzen in PHP bei der Kompilierung deaktivieren

ersetzen
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)); 
} 

mit

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-src/blob/9bcd2bcc21b7739a03acbe4e86dea1efef98c7fd/main/main.c#L157

halten in Beachten Sie, dass diese Funktion einmal während der Initialisierung aufgerufen wird, um "default" zu setzen Wert“, dass ausreichend sein sollte :)

ähnlich, ich glaube, alles, was an die static PHP_INI_MH(OnUpdateTimeout) Funktion ist ein kleiner Patch, um effektiv zu deaktivieren max_execution_time benötigt wird, ersetzen Sie einfach if (stage==PHP_INI_STAGE_STARTUP) mit if(1) am Anfang der Funktion (https://github.com/php/php-src/blob/9bcd2bcc21b7739a03acbe4e86dea1efef98c7fd/main/main.c#L299), und es sollte effektiv für immer unbegrenzt bleiben. habe es nicht wirklich getestet tho

+0

thx, wirklich nette Antwort, ich werde versuchen sie =) Grüße – user3549136