Pregunta ¿Cómo puedo aumentar el tamaño de la pila para Apache que se ejecuta en Windows 7?


Creo que estoy recibiendo desbordamientos de pila ejecutando una aplicación CakePHP en un servidor Apache en Windows 7.


19
2018-02-20 17:58


origen


Respuestas:


Este problema ocurre con mayor frecuencia en la plataforma de Windows, debido al menor tamaño de pila predeterminado de Apache. Hay un tamaño de pila predeterminado de 1 MB en Windows, a diferencia de 8 MB en plataformas Unix / Linux. Podría ser una razón, por qué algunos, por ejemplo, los scripts PHP funcionan correctamente en Linux, pero provocan la falla de Apache en Windows.

Además, el bloqueo es silencioso (Fallo de segmentación), no hay mensaje de error, Apache simplemente deja de responder y se reinicia el proceso secundario. El navegador no obtiene datos y muestra una página en blanco, por lo que es un poco difícil decidir qué ocurre.

Es un problema común cuando se trabaja con largas expresiones regulares en PHP.

Solo hay un aviso en el registro de errores de Apache, que indica que el proceso hijo se bloqueó:

Parent: child process exited with status ... -- Restarting

La mejor manera de alterar el tamaño de la pila de Apache es usando el ThreadStackSize directiva en el archivo de configuración de Apache. Hay una descripción de la ThreadStackSize directiva en la documentación de Apache: http://httpd.apache.org/docs/2.2/mod/mpm_common.html#ThreadStackSize

Entonces, el aumento del tamaño de la pila de Apache en Windows podría verse así:

<IfModule mpm_winnt_module>
   ThreadStackSize 8388608
</IfModule>

Estas líneas deben colocarse en el archivo de configuración de Apache. Por simplicidad, podrías ponerlo httpd.conf. O mejor (pero no es necesario), póngalo en httpd-mpm.conf archivo y en httpd.conf descomentar esta línea:

Include conf/extra/httpd-mpm.conf

Establece el tamaño de la pila de Apache en 8 MB, por lo que es igual a un valor predeterminado en Linux.

¡Y no te olvides de reiniciar Apache! :)


63
2017-09-29 12:44