Foros del Web » Programando para Internet » PHP »

Permisos en apache para ejecutar sentencias exec()

Estas en el tema de Permisos en apache para ejecutar sentencias exec() en el foro de PHP en Foros del Web. Buenas gente. Necesito su ayuda con un tema que tengo. Lo que necesito hacer es, desde un php ejecutar una aplicación (propia) que tome cierta ...
  #1 (permalink)  
Antiguo 24/08/2011, 14:44
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Permisos en apache para ejecutar sentencias exec()

Buenas gente.

Necesito su ayuda con un tema que tengo. Lo que necesito hacer es, desde un php ejecutar una aplicación (propia) que tome cierta información enviada por el mismo php, para que luego esta aplicación ejecute una acción en el servidor, y por ultimo devuelva otro resultado.

Estuve buscando que esto se puede lograr con hacer con la sentencia php

Código PHP:
<?php 
exec
('notepad.exe'); 
?>
Donde notepad.exe es la aplicación que quiero abrir. Hasta el momento eh instalado apache, mysql y todo lo que se necesita para hacer funcionar el servidor. Y también el archivo php para probar ejecutar la aplicación (por el momento el notepad).

Hasta ahi bien, pero cuando abro la direccion del archivo me da este error.

Código:
Parse error: syntax error, unexpected '.' in
C:\xampp\htdocs\www\index.php on line 2
Y calculo que deben ser los permisos de apache que no me deja por seguridad abrir aplicaciones.

Si alguien sabe, por favor necesito mucho esta ayuda.

Desde ya Muchas Gracias!
  #2 (permalink)  
Antiguo 24/08/2011, 14:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 15 años
Puntos: 2135
Respuesta: Permisos en apache para ejecutar sentencias exec()

Eso no es cuestión de permisos, claramente dice que tienes un . donde no debe de ir, porque no muestras el código tal cual que estas utilizando?

Saludos.
  #3 (permalink)  
Antiguo 24/08/2011, 15:07
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Ese es todo el código que estoy usando por ahora. En principio solo quiero hacer funcionar la ejecución del programa y después agregar el resto.
  #4 (permalink)  
Antiguo 24/08/2011, 15:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 15 años
Puntos: 2135
Respuesta: Permisos en apache para ejecutar sentencias exec()

No creo que ese sea el código, si te fijas dice que hay un . en la linea 2 y en el código que expones esta dentro de una cadena.

Saludos.
  #5 (permalink)  
Antiguo 25/08/2011, 06:29
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Correcto, pido disculpas, había un punto que no vi. Lo saque pero cuando quiero abrir la pagina, queda cargando y no hace nada.
  #6 (permalink)  
Antiguo 25/08/2011, 07:04
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

cambie el código por esto:

Código PHP:
exec("C:\WINDOWS\system32\notepad.exe");

echo 
' Abierto correctamente '
Pero solo muestra el mensaje del echo y el programa no se ejecuta...

*************

Ya lo pude arreglar, le faltaban permisos al apache y una configurarcion en php.ini

php.ini
safe_mode= off
safe_mode_exec_dir= On

Apache
Modificar el servicio del apache para darle permisos para permitir al servicio "interactuar con el escritorio", para ello hacemos click en el botón Inicio->Ejecutar y escribimos "Services.msc" ( sin las comillas ), se nos abrirá el "gestor de servicios" de windows, tendremos que hacer click con el botón derecho en el Apache y click en propiedades.
Ahora en la ventana que se nos ha abierto haremos click en "Inicio sesión" y marcaremos la opción "Permitir a los servicios que interactúen con el escritorio".

Corregí eso y se abrió bien el block de notas.

Ahora voy a pasar a probar abrir mi aplicación, y después ver como pasarle los parámetros que necesito.

Gracias!!

Última edición por elmouse19; 25/08/2011 a las 07:39 Razón: Agregar contenido.
  #7 (permalink)  
Antiguo 25/08/2011, 12:58
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Tengo otra consulta.

Puede ejecutar todo y pasarle los parámetros que necesito. El problema ahora es que necesito espera a que la aplicación termine de ejecutarse y me de un resultado, para después traer este mismo resultado hacia el exec.

Y no puedo lograrlo...
  #8 (permalink)  
Antiguo 25/08/2011, 13:25
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 10 años, 8 meses
Puntos: 91
Respuesta: Permisos en apache para ejecutar sentencias exec()

Por cierto, el apache solo tendrá acceso al escritorio en el cual está instalado el apache, no creas que por hacer eso vas a abrirle el notepad a cada individuo que ingrese a la página como máqui9na cliente.

era solo como comentario :)
  #9 (permalink)  
Antiguo 25/08/2011, 14:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Gracias. Si eso lo se. Justamente es lo que quiero, abrir una aplicación en el servidor, que haga una tarea y devuelva el resultado.
  #10 (permalink)  
Antiguo 25/08/2011, 14:09
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 10 años, 8 meses
Puntos: 91
Respuesta: Permisos en apache para ejecutar sentencias exec()

Ok, es que como ponías de ejemplo el notepad por eso me quedaba la duda xD!
  #11 (permalink)  
Antiguo 25/08/2011, 14:18
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Claro.

El codigo que estoy usando ahora es:

Código PHP:
<?php 
$salida 
"hola";

exec("C:\loquendo\ConsoleApplication1.exe 55 77"$results$salida);

print_r($salida);
?>
Después de .exe, 55 y 77 son los parametros que le paso a mi aplicación. Hasta ahi va todo perfecto, mi aplicación hace lo suyo, que es generar un archivo.

Pero lo que quiero y no puedo lograr es que, una vez este generado el archivo (que en generarse no tarda mas de 2 o 3 segundos), traer este archivo de nuevo al sitio para que se pueda "descargar" pero no hace nada mas.

Una ves ejecuta la asociación, la web termina y queda ahí.

Alguien sabe como puedo hacer?

Última edición por elmouse19; 25/08/2011 a las 14:26
  #12 (permalink)  
Antiguo 26/08/2011, 06:12
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: Permisos en apache para ejecutar sentencias exec()

Ya lo solucione.

Etiquetas: apache, configuración-php, ejecuta, permisos, sentencias, sql
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 10:46.