Autor
|
Tema: ¿Como ejecutar shell script (bash) desde PHP? (Leído 31,225 veces)
|
lipman
|
He probado de todo, con los comandos de system, shell_exec, y exec.
Me funcionan perfectamente si lo que tengo ejecutándose es una linea, del estido de 'echo hola > asd' y demás. El problema es que yo quiero ejecutar un archivo .sh entero, y no sé como.
He buscado y no he dado con la solución que me funcione. Alguien sabe cómo? Si poneis algo, por favor probadlo, porque como digo, he encontrado varias soluciones y ninguna me ha funcionado, osea que copiar soluciones de otro sitio no me vale, solo si lo habeis probado antes xD.
El sh que estoy intentando ejecutar y no me va es muy simple:
programa.sh echo "hola mundo" echo "hola" > rofl
A ver si hay suerte, un saludo y muchas gracias!
|
|
|
En línea
|
|
|
|
Shell Root
|
BASH: echo "Hola";
PHP: print exec("sh PoC.sh")."\n";
SALIDA: alex@shellroot:~/Escritorio$ php PoC.php Hola
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Deberías utilizar la función system(), ya que esta también muestra la salida, en cambio al utilizar exec(), solo se ejecuta el programa. programa.sh #!/bin/bash echo "hola mundo" echo "hola" > rofl
Nota: En la primera linea, indico donde se encuentra el interprete de bash. A al ejecutar el script en bash, no es necesario indicarle que es un script en bash, con un simple ./bash basta. index.php <?php ?>
[yoya@Fedora pruebas]$ ls index.php programa.sh [yoya@Fedora pruebas]$ chmod +x programa.sh [yoya@Fedora pruebas]$ php index.php hola mundo [yoya@Fedora pruebas]$ ls index.php programa.sh rofl [yoya@Fedora pruebas]$
Saludos.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
lipman
|
Vale, se me olvidó decir un detalle sorry... Necesito que se ejecute desde el navegador, no desde la consola =)
|
|
|
En línea
|
|
|
|
Shell Root
|
Es igual, o en que te falla?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
lipman
|
He probado ambas cosas, y nada, osea, no sé en que me falla, no me sale ningún error, ninguna salida. Si pongo esto:
Si que me funciona, me saca por pantalla "hola". Pero el programa sh no me funciona. Incluso he probado a hacer un exec con varias lineas, y tampoco va: echo adios")."\n";
Salida: "hola" Un saludo
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Ps a mi me funciona tanto en el navegador como en la consola, supongo que el error puede ser por alguna propiedad del php.ini o no tengas permisos suficientes para crear archivos en el dir que estas utilizando.
Saludos.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
lipman
|
Lo de los permisos no creo que sea: -Puedo ejecutar el programa.sh directamente desde la consola (cygwin) y me crea el archivo correctamente -Tengo puesta la carpeta htdocs donde está el index del server como 777 -Tengo puesto a 777 programa.sh y el index.php
Con respecto lo del php.ini, que yo sepa el problema suele ser el "safe_mode" y lo tengo en off.
Osea yoya, lo que me estás diciendo es que exáctamente lo que tú has puesto, te funciona ejecutándolo desde el navegador? Me voy a tener que preocupar entonces...
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
sip a mi me funciona...
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Lo de los permisos no creo que sea: -Puedo ejecutar el programa.sh directamente desde la consola (cygwin) y me crea el archivo correctamente -Tengo puesta la carpeta htdocs donde está el index del server como 777 -Tengo puesto a 777 programa.sh y el index.php
Con respecto lo del php.ini, que yo sepa el problema suele ser el "safe_mode" y lo tengo en off.
Osea yoya, lo que me estás diciendo es que exáctamente lo que tú has puesto, te funciona ejecutándolo desde el navegador? Me voy a tener que preocupar entonces...
En que servidor lo tienes? Saludos
|
|
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Bash] ejecutar una aplicacion desde un script , sin parar la ejecucion del mism
Scripting
|
z_ane_666
|
0
|
3,797
|
2 Marzo 2012, 18:27 pm
por z_ane_666
|
|
|
[bash] como abrir otra consola y mandarle instrucciones desde bash?
Scripting
|
aixeiger
|
2
|
5,455
|
3 Diciembre 2012, 17:25 pm
por aixeiger
|
|
|
Como evito que python muestre el CMD al ejecutar un script con pyQT4?
Scripting
|
Synth3tik0
|
2
|
3,144
|
16 Enero 2013, 19:54 pm
por 0x5d
|
|
|
Script VBS para ejecutar desde Unidad USB
Programación Visual Basic
|
QXT
|
0
|
2,762
|
8 Noviembre 2013, 13:07 pm
por QXT
|
|
|
[BASH] Ejecutar un script pasandole argumentos desde otro
Scripting
|
ivan_esp
|
3
|
5,385
|
14 Octubre 2014, 18:47 pm
por ivan_esp
|
|