A configuração padrão é executar todas as páginas PHP (e seus comandos gerados) como www-data usuário, o que significa que eles só têm acesso às sessões de propriedade de www-data .
Você precisa executar o script em sua própria conta de usuário, o que pode ser feito por:
-
usando
sudo; por exemplo, a seguinte entrada sudoers :www-data: ALL=(duke) NOPASSWD: /home/duke/aa/scripts/test.shpermitirá que você execute
exec("sudo -u duke /home/duke/aa/scripts/test.sh"); -
ou instalando suPHP : o script PHP será executado sob a conta de seu proprietário.
Seu exemplo atual executa o script duas vezes , que pode ter vários efeitos colaterais. Livre-se da segunda chamada exec() - ou melhor ainda, use system() ou passthru() - se quiser exibir a saída do script.