Foros del Web » Programando para Internet » PHP »

system() no funciona

Estas en el tema de system() no funciona en el foro de PHP en Foros del Web. 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é ...
  #1 (permalink)  
Antiguo 24/09/2011, 06:31
 
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.
  #2 (permalink)  
Antiguo 24/09/2011, 06:43
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: system() no funciona

Tienes que ejecutar el archivo en relación al directorio donde está el script de PHP que ejecuta el system() y, en el mismo, yo no veo que hayas puesto $java_path para indicarle donde está el sh.
  #3 (permalink)  
Antiguo 24/09/2011, 07:22
 
Fecha de Ingreso: junio-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: system() no funciona

Gracias por tu respuesta.

Ahí no aparece $java_path dentro de system porque es como lo tenía al principio, pero he probado a ponerlo dentro tal que:

Código PHP:
system($java_path 'command_user' $USER->id '.sh'$output); 
y he seguido obteniendo el mismo resultado.

No sé si es a eso a lo que te refieres.
  #4 (permalink)  
Antiguo 24/09/2011, 09:47
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: system() no funciona

¿qué contienes $java_path? porque puede der que sea por ejemplo "/home/www" si pasamos esa variable a como lo tienes expuesto, el te lo pondrá así: "/home/wwwcommand_user1.sh", puedes probar a poner system($java_path . '/command_user' . $USER->id . '.sh', $output);, otra opción es poner system('./command_user' . $USER->id . '.sh', $output);
  #5 (permalink)  
Antiguo 24/09/2011, 10:35
 
Fecha de Ingreso: junio-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: system() no funciona

Pfff estaba a por uvas yo.

Gracias!! Resulta que generaba un bat y un sh (porque lo uso tanto en windows como en linux) y estaba modificando el path del bat.

Gracias, era ese el problema. Vaya despiste.

Un saludo :D
  #6 (permalink)  
Antiguo 24/09/2011, 11:49
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: system() no funciona

Ahora por ese despistes, nos debes de invitar a todos los que estamos en el foro a un café :P

Etiquetas: system, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.