Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2011, 06:31
pachoc
 
Fecha de Ingreso: junio-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta system() no funciona

Hola a todos, ante todo gracias por prestarle vuestra atención a mi duda.

Estoy empezando con el tema de los servidores propios y tal. Instalé ubuntu server en un ordenador y lo he ido configurando poco a poco para utilizar diversas funcionalidades. Sin embargo, el php.ini lo he dejado tal cual aparece, bastante inseguro por así decirlo.

Tengo un archivo sh con el siguiente contenido:
Código:
#!/bin/bash
		cd /home/www/web/moodle/question/type/talf_compare/java
		java archivos talf_compare11/original.xml talf_compare11/user2.xml talf_compare11/output_user2.xml
Su función es ejecutar un java que coge dos archivos de entrada y escupe uno de salida. Ejecutando dicho .sh con el usuario www en la consola del servidor, funciona perfectamente y produce el archivo de salida esperado al ejecutar el java. El problema viene cuando utilizo la función "system()" en PHP para llamarlo desde un script al que tiene acceso cualquier visitante de la página web:

Código PHP:
chdir($java_path); //$java_path es el directorio donde está el archivo que llamo en el system.
system("command_user" $USER->id '.sh'$output); 
Por algún motivo que no entiendo, system no está ejecutando el java, devolviéndome en $output un 127 que en teoría es que no encuentra el fichero. Si quito el chdir($java_path) tengo el mismo problema y si dentro de system() pongo la ruta antes del archivo tampoco funciona.

Tengo safe_mode = off. Todos los archivos y carpetas que intervienen en el proceso están con permisos 777 (al menos hasta que averigüe qué pasa, prefiero no estar pensando en los permisos). Como nota tampoco está de más decir que estoy trabajando en un plugin de Moodle.

¿Qué puede estar pasando? ¿Cómo puedo atacar el problema?

Muchas gracias por vuestra inestimable ayuda, un saludo.