Estoy tratando de invocar un script que toma varios segundos (servicios web con terceros) usando la llamada de PHP Exec. Después de mucho luchar, reduje esto al clásico ejemplo de hello world. La secuencia de comandos se parece a llamar:No se puede ejecutar el script PHP usando PHP exec
exec('/usr/bin/php /home/quote2bi/tmp/helloworld.php > /tmp/execoutput.txt 2>&1 &');
Cuando ejecuto esto, la salida execoutput.txt
contiene una copia de la página de guión invocación, no hello world
como lo esperaba.
¿Por qué no puedo obtener esta secuencia de comandos PHP para ejecutar utilizando exec? Tenga en cuenta que cuando cambio el comando a algo como ls -l
, la salida es una lista de directorios como se esperaba. por cierto, en caso de que importa, yo chmod la llamada secuencia de comandos para 755 ...
actualización - Me moví la llamada exec para el final de la secuencia de comandos que llama y al menos ahora no veo el guión de llamada ejecutado en la salida. Gracias a los carteles y voy a probar algunas de estas ideas.
¡Ayuda!
Gracias Steve
John - gracias por su respuesta, pero lamentablemente, no funcionó para mí. Cuando lo intenté: exec ('/ home/quote2bi/tmp/helloworld.php> /tmp/execoutput.txt 2> & 1 &') ... Obtuve los mismos resultados (página actual en el archivo de salida). El segundo ejecutivo bloqueado (omitiendo el &) - cuando se agregó obtuve los mismos resultados. –
¿Hay alguna opción si la función exec() está deshabilitada en mi servidor? –