elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:14  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  ¿Como ejecutar shell script (bash) desde PHP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como ejecutar shell script (bash) desde PHP?  (Leído 1,480 veces)
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
¿Como ejecutar shell script (bash) desde PHP?
« en: 9 Enero 2012, 16:19 »

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

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #1 en: 9 Enero 2012, 21:49 »

BASH:
Código
echo "Hola";
PHP:
Código
print exec("sh PoC.sh")."\n";

SALIDA:
Código
alex@shellroot:~/Escritorio$ php PoC.php
Hola


En línea

---
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #2 en: 9 Enero 2012, 23:35 »

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
Código
#!/bin/bashecho "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
Código
<?php
 
system('./programa.sh');
 
?>

Código
[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

‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #3 en: 10 Enero 2012, 10:39 »

Vale, se me olvidó decir un detalle sorry... Necesito que se ejecute desde el navegador, no desde la consola =)
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #4 en: 10 Enero 2012, 11:04 »

Es igual, o en que te falla?
En línea

---
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #5 en: 10 Enero 2012, 15:36 »

He probado ambas cosas, y nada, osea, no sé en que me falla, no me sale ningún error, ninguna salida.

Si pongo esto:

Código
print exec("echo hola")."\n";

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:

Código
print exec("echo hola
echo adios"
)."\n";

Salida: "hola"


Un saludo
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #6 en: 10 Enero 2012, 15:44 »

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

‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #7 en: 10 Enero 2012, 16:45 »

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

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #8 en: 10 Enero 2012, 23:22 »

sip a mi me funciona...
En línea

mokoMonster


Desconectado Desconectado

Mensajes: 300


<? ...


Ver Perfil
Re: ¿Como ejecutar shell script (bash) desde PHP?
« Respuesta #9 en: 24 Enero 2012, 15:51 »

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines