Comunidad de diseño web y desarrollo en internet online

Socorro: ejecutar en php comandos

Citar            
MensajeEscrito el 10 Mar 2009 02:30 pm
Hola,

Les pido ayuda porque ando un poco desesperado, tengo unos comandos en linux:

"ffmpeg -i /home/devuser/public_html/material/test1.flv -sameq /home/devuser/public_html/material/test1.mpg"

Que sirven para unir videos, y que necesito ejecutar desde php, pero mi problema es que cuando pregunto que usuario es PHP me dice nobody. Y claro creo que tengo problemas de permisos. Como cambio esto? alguna otra idea?

Adjunto esto:

<?php
echo("Test SHELL<br>");
system('whoami');
echo("<br>");
echo exec('whoami');
echo("<br>");
echo shell_exec('whoami');
echo("<br>");
echo `whoami`;
?>

Esto retorna todo nobody.

Muchisimas gracias para el que pueda echarme una mano.
Pancho

Por panchesco

35 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 11 Mar 2009 10:56 pm
mmm, deberia retornar almenos el nombre del usuario del Apache.

Podrias intentar ejecuantdo tus comandos con esto:

Código PHP :

<?php
$flv1 = "/home/devuser/public_html/material/test1.flv";
$flv2 = "/home/devuser/public_html/material/test1.mpg";
$comando = "ffmpeg -i $flv1 -sameq $flv2";
echo "<pre>".ejecutar( $comando )."</pre>";

function ejecutar( $comando ) 
{
        $f = popen($comando . ' 2>&1', 'r');
        $out = "";
        while (!feof($f)) 
        {
            $out .= fread($f, 1024);
        }
        pclose($f);
        return $out;
}
?>


Espero eso te sirva, o tambien:

Código PHP :

$flvr = `$comando 2>&1`;//Nota las comillas invertidas
echo "<pre>$flvr</pre>";


Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Mar 2009 02:56 am
proba con un

Código PHP :

echo exec('ls');


;)

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 12 Mar 2009 03:24 pm
Longevie gracias por la funcion, por favor podrias explicarme como funciona por dentro, entiendo que abre un pipe y pasa los datos, pero FUNCIONA y me han dado mil respuestas y ninguna funcionaba y me interesaria entiendelo.


De nuevo,
Muchas gracias.

Por panchesco

35 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 12 Mar 2009 06:41 pm
:D

Bueno, pues es una simple funcion que usa popen, como dices abre un apuntador al archivo de retorno de la ejecucion, y lo recorre para generar una salida string, en eso no hay mucha ciencia; la parte mas util es ' 2>&1' agregarle eso al comando, forza la ejecucion; me parece que eso solo funciona en linux.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.