Execute o script bash do php

4

Eu quero executar um script de shell dentro de uma página da web php para verificar alguns processos em execução no meu sistema (Ubuntu 12.04). Googleing eu encontrei sobre shell_exec() , mas não consigo executar o script ao carregar php.

Este é o código php que eu uso.

$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";

e o pedaço de html eu recebo

<pre></pre>

Também experimentou $output = shell_exec('sudo -u www-data ./dirlist.bash');

dirlist.bash faz ls -l (apenas para testar script e shell_exec)

Eu acho que não é um problema de permissão. A execução do diretório concede privilégios de gravação e execução para todos os usuários (devo ter cuidado aqui).

drwxrwxrwx  4 meteo meteo 4096 mar 11 15:20 RAMS

O usuário www-data foi adicionado ao arquivo sudoers no caso de ser necessário

www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash

Obrigado antecipadamente

    
por pacomet 11.03.2014 / 15:33

1 resposta

9

Você provavelmente precisará chdir para o diretório correto antes de chamar o script. Dessa forma, você pode garantir em qual diretório seu script está "antes" de chamar o comando shell.

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";

Código de:

por kamil 11.03.2014 / 15:47