Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. Olá à todos,

    Estou com um problema ao executar o seguinte comando pela função exec():

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

    No começo, pensava que era alguma restrição do linux para bloquear a função exec,
    mas depois executei o seguinte código e ele teve retorno:

    <?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();
    ?>

    Esse código me retornou ao ping da máquina em que o rodei, no caso 218ms.
    Me falaram que o PHP restringe alguns comandos do linux, mas o que fazer para desbloquear esses comandos?
    Na verdade eu nem sei se é realmente isso, só estou tentando chegar a algumas conclusões...

    Obrigado!

  2. Nota: Quando o safe mode estiver ativo, você só pode chamar executáveis dentro de safe_mode_exec_dir. Por razões práticas não é permitido haver .. no caminho do executável.

    safe_mode_exec_dir string Se o PHP for usado no modo seguro, system() e as outras funções que executam programas do sistema se recusam a executar programas que não estão no diretório atual. Você deve usar / como separador diretório em todos os ambientes, inclusive o Windows.

    Veja se isso lhe ajuda a resolver o problema.





  3. Olá,

    Pelo que eu entendi, ele só executa o que estiver no diretório atual, sendo que no meu comando eu utilizei o comando CD:

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

    Então o que eu deveria fazer? Pois meu safe_mode e meu safe_mode_exec_dir já estão off.

    Aguardo respostas!
    Última edição por FarinhadeOsso; 25-06-2011 às 11:22.

  4. ver qual usuário o seu php usa e adiciona ele no sudores...



  5. pedrovigia: utilizei a função get_current_user() para verificar exatamente isso, e retorna a root

    dimasters: Sim, utilizo o cd no diretório e depois executo.
    Já tentei fazer ./opt/lampp/htdocs/samp/6000/6000 & e não funcionou
    Quais logs? mexo em linux faz 5 dias só






Tópicos Similares

  1. Erro ao executar comando usando o sudo
    Por Duca no fórum Linguagens de Programação
    Respostas: 2
    Último Post: 18-12-2008, 10:00
  2. Problemas ao compilar php5 com suporte a mysql
    Por napster no fórum Servidores de Rede
    Respostas: 1
    Último Post: 20-11-2006, 17:22
  3. Executar Comando com preexec
    Por mrsoliveira no fórum Servidores de Rede
    Respostas: 0
    Último Post: 17-04-2006, 09:59
  4. Problemas ao executar k3b no Slack 10
    Por vonlinkerstain no fórum Servidores de Rede
    Respostas: 3
    Último Post: 14-12-2004, 17:23
  5. Problemas ao conectar php com mysql
    Por Lili no fórum Servidores de Rede
    Respostas: 44
    Último Post: 12-11-2002, 09:19

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L