O usuário do Apache www-data
precisa receber privilégios para executar determinados aplicativos usando sudo
.
- Execute o comando
sudo visudo
. Na verdade, queremos editar o arquivo emetc/sudoers
.Para fazer isso, usandosudo visudo
no terminal, duplique (temp)sudoers
arquivo para edição. - No final do arquivo, adicione o seguinte ex: -se quisermos usar o comando para o comando
restart
smokeping ephp
para outra ação em sua pergunta,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Isso presume que você deseja executar os comandos restart
e php
usando superusuário
privilégios (root). E você usa o comando php
em usr/bin/
path)
No entanto, se você deseja executar todos os aplicativos usando
privilégios de super usuário, em seguida, adicione o seguinte em vez do que está acima.Você pode não querer fazer isso, não para os comandos ALL
, muito perigoso.
www-data ALL=NOPASSWD: ALL
3. Depois de editar o arquivo sudoers (por visudo
editamos o arquivo temporário de sudoers
, então salve e saia do arquivo temporário (visudo) para escrever no arquivo sudoers
. ( wq!
)
4. É isso aí, agora use exec()
ou shell_exec
da seguinte maneira dentro do seu script xxx.php
. lembre-se de usar sudo
antes do uso do comando no script php.
ex: -
exec ("sudo /etc/init.d/smokeping restart 2>&1");
ou
shell_exec("sudo php -v");
Portanto, no seu problema, adicione os comandos que você deseja usar no step no (2.)
à medida que eu adiciono e altero seu script php como o que você deseja.
aqui está o mesmo problema que o seu link