A versão incorreta do PHP é usada quando chamada de um script

1

Peço desculpas antecipadamente se essa questão for realmente básica. Meu histórico é no Windows e estou sendo solicitado a manter um servidor RedHat Linux que está em mau estado e está em uso de produção.

O problema é que a versão do PHP é diferente quando executada a partir de um script no Apache vs. a linha de comando.

Por exemplo:

Na linha de comando:

Dapáginadaweb(Apache):

A partir de um script php chamado por uma página da web:

O script é chamado por este código php e função:

$exec_result = sku_exec(CLIMPORT.FILE_NAV, '', $_POST['nav_skus']);

function sku_exec($file_path, $call, $args)
{
    $exe = $file_path.' ';
    if($call != '' && isset($call) && $call) $exe .= $call.' ';
    $exe .= $args;
//  echo $exe.'<hr />';
    exec('php '.$exe, $return_data);
    return $return_data;
}

Eu preciso fazer o downgrade do script para usar o 5.2.9 em vez do 5.4.1.

Onde eu mesmo começo a procurar como isso está configurado? Por que a versão do PHP que o Apache está usando é diferente da versão que está chamando de um script?

Eu olhei para o arquivo de configuração do Apache, mas não vi nada que saltou para mim.

Alguma sugestão?

Infelizmente, atualizar o servidor para o PHP mais recente não é uma opção no momento. O plano é criar um novo servidor e migrar para ele.

    
por rboarman 06.07.2012 / 19:30

1 resposta

0

Execute which php da CLI e adicione o caminho ao script para que você esteja executando exec('/path/to/the/cli/php . Seu usuário deve ser tão restrito a não ser capaz de executar o que (seria seriamente confuso): o usuário executando a linha de comando tem um ambiente diferente e, portanto, um diferente PATH para o que o usuário tem. A variável PATH , se bem me lembro, embora tenha sido há muito tempo, existe mesmo no DOS. Então pegue os valores em PATH ( echo $PATH ) e verifique manualmente qual dir contém um arquivo chamado php . Isso é o que o which faz, de qualquer forma.

Você precisa ler alguns livros básicos do Linux se este for seu trabalho agora.

    
por 06.07.2012 / 20:56