Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2009, 03:28
Avatar de cubic
cubic
 
Fecha de Ingreso: febrero-2007
Mensajes: 51
Antigüedad: 17 años, 2 meses
Puntos: 1
Pregunta Ejecutar script con php+Apache

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
Código:
5,3 MiB (5600026 bytes)
El archivo de 100.001 lineas pesa
Código:
5,3 MiB (5600088 bytes)
Entonces yo he probado lo siguiente:

· Ejecutarlo desde shell con un java que llama al script. "Funciona"
· Ejecutarlo con la función
Código PHP:
system(); 
"No funciona"
· Ejecutarlo con la función
Código PHP:
exec(); 
"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 PHP:
phpinfo(); 
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 PHP:
phpinfo(); 
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

Última edición por cubic; 09/10/2009 a las 03:38