função exec()/shell_exec() não funciona no meu linux

1. função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 11:14h

Olá à todos,

Estou com um problema ao usar essas funções, não consigo executar nenhum comando dentro delas no linux.
Parece que está desabilitado ou algo do tipo, pois já tentei executar comandos diferentes e não funciona.

Utilizo o Linux Ubuntu 11.04 x86.

Obrigado.


  


2. Re: função exec()/shell_exec() não funciona no meu linux

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 24/06/2011 - 11:47h

Olá amigo,
Poste o código completo, ou um exemplo, para vermos como você está usando essas funções.

Aqui tá funcionando.
ABraços


3. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 11:52h

Olá,

Já tentei executar esse arquivos dessas 3 maneiras, ambas não funcionaram:


<?
exec("cd /opt/lampp/htdocs/samp/6000/ && chmod +x 6000 && ./6000 &");
?>



<?
shell_exec('sh /opt/lampp/htdocs/samp/6000/6000');
?>



<?
shell_exec('cd /opt/lampp/htdocs/samp/6000/ && sudo /opt/lampp/htdocs/samp/6000/6000');
?>



4. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 14:20h

É, parece que o problema não se encontra bem nessas funções.
Executei o seguinte script e funcionou:


<?php
function GetPing($ip=NULL) {
if(empty($ip)) {$ip = $_SERVER['REMOTE_ADDR'];}
if(getenv("OS")=="Windows_NT") {
$exec = exec("ping -n 3 -l 64 ".$ip);
return end(explode(" ", $exec ));
}
else {
$exec = exec("ping -c 3 -s 64 -t 64 ".$ip);
$array = explode("/", end(explode("=", $exec )) );
return ceil($array[1]) . 'ms';
}
}

echo GetPing();
?>


Essa função retornou a 218ms aqui, então quer dizer que a função exec() está funcionando.
Após isso, executei o seguinte comando nela para executar um aplicativo e não obtive bons
resultados, sendo que o mesmo comando funciona perfeitamente no SSH:


<?
exec("cd /opt/lampp/htdocs/samp/6000/ && ./6000 &");
?>


Eu suspeito que esse script não esteja funcionando devido ao caractere &, mas não é nada
concreto, é apenas uma suspeita!


5. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 14:53h

Nem todos os comandos por motivos de segurança estão habilitados para a função exec() do PHP.

Veja:


<?php
$foo = $_REQUEST["bar"];
/*
Poderia ser passado algo como
$foo = 'rm -rf /*';
*/
exec( 'sudo ' . $foo );
// E isso seria fatal para o sistema... Concordas?
?>


Este é um exemplo estúpido mas pode acontecer.

Mas, se não me engano, existe um arquivo em que podemos habilitar mais alguns commandos.

Peço que consulte o manual da linguagem PHP para maiores esclarecimentos.


6. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 16:51h

Correto

e qual seria a função desse código? Só pra saber se ele funcionou ou não
Irei dar uma lida na documentação, teria um link direto para ser mais rápido?


7. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 17:37h

É um comando da morte. Não o use.
http://php.net


8. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2011 - 20:03h

dei uma procurada no manual PHP e não achei nada relacionado à esse assunto :(


9. Re: função exec()/shell_exec() não funciona no meu linux

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/06/2011 - 12:26h

Dei uma procurada melhor e agora achei:

http://us3.php.net/manual/pt_BR/features.safe-mode.functions.php

Então o que fazer para habilitar essas funções?
Ouvi falar que no PHP 6 não tem safe mode, será que se eu colocar PHP 6 resolve o problema?

Obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts