Buenas compañeros,
Mi problema es el siguiente:
Intento ejecutar desde
PHP4.3.9 + Apache/2.0.52 (Red Hat) un script de shell Unix(Red hat) mediante la función de php
Código PHP:
shell_exec();
El problema en cuestión es que si al script que llamo le hago leer un archivo de más de 100.000 lineas se cierra el procesa y me devuelve un "Segmentation fault" en la llamada al programa, mientras que si ejecuto el mismo script desde la propia shell como usuario root no tengo problemas para ejecutar el script correctamente aunque tenga 200.000 lineas por ejemplo.
El archivo de 100.000 lineas pesa
El archivo de 100.001 lineas pesa
Entonces yo he probado lo siguiente:
· Ejecutarlo desde shell con un java que llama al script. "
Funciona"
· Ejecutarlo con la función
"
No funciona"
· Ejecutarlo con la función
"
No funciona"
· Comprobar la configuración de "/etc/php.ini" :
Desde "/etc/php.ini":
Código:
safe_mode = Off
safe_mode_exec_dir =
max_execution_time = 520 ; Maximum execution time of each script, in seconds
max_input_time = 560 ; Maximum amount of time each script may spend parsing request data
memory_limit = 250M ; Maximum amount of memory a script may consume (8MB)
post_max_size = 80M
output_buffering = Off
Desde
Código:
safe_mode Off Off
safe_mode_exec_dir no value no value
max_execution_time 520 520
max_input_time 560 560
memory_limit 250M 250M
post_max_size 80M 80M
output_buffering no value no value
· Comprobar la configuración de Apache:
Desde "/etc/httpd/conf/httpd.conf":
Código:
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Desde
Código:
Max Requests Per Child: 4000 - Keep Alive: off - Max Per Connection: 100
HTTP_KEEP_ALIVE 300
HTTP_CONNECTION keep-alive
Timeouts Connection: 120 - Keep-Alive: 15
Y al modificar los campos he hecho un
Código:
/etc/init.d/httpd restart
Espero que alguien tenga una idea.
Gracias