Foros del Web » Programando para Internet » PHP »

Funciones como system(), shell_exec(), exec()....

Estas en el tema de Funciones como system(), shell_exec(), exec().... en el foro de PHP en Foros del Web. Buenos dias chicos! Llevo ya días intentando solucionar esto y veo que no hay manera, a ver si alguien puede ayudarme! Necesito en un archivo ...
  #1 (permalink)  
Antiguo 11/12/2013, 10:45
 
Fecha de Ingreso: julio-2009
Mensajes: 24
Antigüedad: 14 años, 9 meses
Puntos: 0
Funciones como system(), shell_exec(), exec()....

Buenos dias chicos!

Llevo ya días intentando solucionar esto y veo que no hay manera, a ver si alguien puede ayudarme!

Necesito en un archivo php ejecutar diferentes comandos que usariamos en un terminal:

He provado diferentes funciones como shell_exec(), system(), exec()...etc.

Pero no he encontrado solución, el problema de estas funciones es que algunas si me las ejecuta y otras no, por ejemplo:

exec ('mkdir prueba');

exec ('ls -l');


Estas por ejemplo me funcionan con las 3 funciones y sin problema, pero a la que me dispongo a utilitzar por ejemplo un change directory (cd)

exec ('cd prueba');

Ya no me funciona.

Nombro el comando CD como ejemplo, ya que lo que verdaderamente me interesa es poder conseguir ejecutar un comando ant, pero pensé que como tampoco me va el CD estaría bien saber el porque.

Por si acaso, estoy usando un iMAC, la versión de php que uso es la 5 y en principio, nada más.

Si quereis os pongo el código pero ya os digo, es simple, algunos comandos funcionan y otros no, no se si algo estoy haciendo mal...gracias!

Un saludo y gracias a todos!

Alex
  #2 (permalink)  
Antiguo 11/12/2013, 10:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Funciones como system(), shell_exec(), exec()....

¿Ya consultaste el manual de todas las funciones que has usado para saber si existen restricciones o un tipo de configuración especial?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/12/2013, 11:03
 
Fecha de Ingreso: julio-2009
Mensajes: 24
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Funciones como system(), shell_exec(), exec()....

Estoy en ello!

Lo que creo que pasa es que comandos como por ejemplo CD són propios de windows, entonces en funciones que van con comandos UNIX no funciona.

Estoy mirando que tipo de comando es ant que creo que es compilador-servidor. Se que debe estar instalado para utilitzarlo, y lo tengo instalado, pero sigue sin funcionarme.

No se como ejecutar ese comando ant!!!!
  #4 (permalink)  
Antiguo 11/12/2013, 11:07
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Funciones como system(), shell_exec(), exec()....

en mac shell_exec() siempre me ha funcionado sin problema.

Probablemente sean permisos con el usuario con el que PHP corre en tu sistema.

Si ejecutas el siguiente programa:

echo shell_exec('whoami')

deberias poder ver el usuario del sistema que PHP utiliza para ejecutar programas, y deberias poder ver los privilegios de ese usuario.
  #5 (permalink)  
Antiguo 11/12/2013, 11:08
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Funciones como system(), shell_exec(), exec()....

Cita:
Iniciado por KeSpyKe Ver Mensaje
Estoy en ello!

Lo que creo que pasa es que comandos como por ejemplo CD són propios de windows, entonces en funciones que van con comandos UNIX no funciona.

Estoy mirando que tipo de comando es ant que creo que es compilador-servidor. Se que debe estar instalado para utilitzarlo, y lo tengo instalado, pero sigue sin funcionarme.

No se como ejecutar ese comando ant!!!!
CD no es exclusivo de windows, tambien existe en linux y derivados.
  #6 (permalink)  
Antiguo 12/12/2013, 01:23
 
Fecha de Ingreso: julio-2009
Mensajes: 24
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Funciones como system(), shell_exec(), exec()....

Por lo que he encontrado, una opción valida quizá sería hacer un archivo .sh y ejecutar ese archivo desde un comando que en principio es UNIX (' ./nombre.sh ').

El problema es que no se como ver si ese archivo se me esta ejecutando o no, he creado un archivo hola.sh donde dentro tengo el código de:

echo "hola que tal";

Lo he provado desde mi terminal ejecutandolo y me funciona bien, pero en cuando lo abro con php no me sale nada...mi código es el siguiente:

Código PHP:

<?php


$prova 
shell_exec('ls -l');

echo 
$prova;

$prova2 shell_exec('./prova.sh');

echo 
$prova2;

?>
y este el código del archivo .sh:

Código:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

echo "hola que tal";

exit

Gracias a todos, a ver si me podeis ayudar y así ya puedo añadir mi comando de tipo "ant" en mi archivo .sh y ejecutarlo de forma correcta, un saludo!

Etiquetas: comando, funcion
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 17:05.