Apache kullanıcısına www-datakullanarak belirli uygulamaları yürütmek için ayrıcalık tanınmalıdır sudo.
- Komutu çalıştırın
sudo visudo. Aslında dosyayı bizde düzenlemek istiyoruz etc/sudoers. Bunu yapmak için, sudo visudoterminalde kullanarak sudoersdosyayı düzenlemek için (temp) çoğaltın .
- Dosyanın sonuna şu ex komutunu ekleyin: -
restartsigara içmek için komut kullanmak ve sorunuzdaki phpbaşka bir işlem için komut kullanmak istiyorsak ,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Bu, süper kullanıcı (kök) ayrıcalıklarını kullanarak çalıştırmak restartve phpkomutlar vermek istediğinizi varsayar ve yoldaki phpkomutu kullanırsınız usr/bin/)
Ancak, her uygulamayı süper kullanıcı ayrıcalıkları kullanarak çalıştırmak istiyorsanız, yukarıda belirtilenler yerine aşağıdakileri ekleyin. Bunu yapmak istemeyebilirsiniz, ALLkomutlar için değil , çok tehlikeli.
www-data ALL=NOPASSWD: ALL
3. Sudoers dosyasını visudodüzenledikten sonra ( sudoersbu yüzden kaydedin ve temp dosyasına (visudo) geçici dosyasını düzenleyerek sudoersdosyaya yazın. ( wq!)
4. İşte bu, şimdi exec()veya betiğinizde shell_execaşağıdaki şekilde kullanın xxx.php. php betiğinde komut kullanmadan sudoönce kullanmayı unutmayın .
örn: -
exec ("sudo /etc/init.d/smokeping restart 2>&1");
veya
shell_exec("sudo php -v");
Bu yüzden sorununuzda, kullanmak istediğiniz komutları step no (2.)ekleyin ve eklediğim gibi php betiğinizi istediğiniz gibi değiştirin.
seninkiyle aynı problem burada /programming//a/22953339/1862107