Solusi kanggo PHP ora duwe idin kanggo nglakokake perintah exec ing Linux
Referensi resmi sing gegandhengan
PHP exec Linux sudoers file Sudo CommandsModifikasi nalika mbukak ing mode fastcgi
Nalika PHP mlaku ing mode fastcgi, ijin kasebut diwarisake saka program host. Ayo dadi apache minangka conto kanggo nerangake. Kaping pisanan, kita kudu golek akun sing mbukak apache, banjur gunakake vi utawa vim kanggo nyunting file / etc / sudoers, lan nambah conto referensi ing ngisor iki menyang file kasebut. Ing konten ing ngisor iki, luwih dhisik nggunakake perintah ps kanggo nemokake proses apache httpd, deleng informasi akun ing sisih kiwa asil sing dikembalikan, banjur sunting file sudoers kanggo nambah otorisasi menyang akun apache.
ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
Modifikasi nalika mlaku ing mode php-fpm
Nalika mbukak ing mode php-fpm, proses kasebut dadi proses sing kapisah. Dadi, luwih dhisik nemokake akun sing mlaku, banjur tindakake operasi otorisasi kaya ing ndhuwur.
ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
Verifikasi manawa pangowahan kasebut berlaku
Sawise operasi ing ndhuwur, kita ngowahi otorisasi, nanging durung bisa ditrapake. Kita kudu urip maneh layanan kanggo modifikasi. Miturut kahanan nyata, restart layanan apache utawa php-fpm. Banjur jalanake printah exec kanggo ndeleng asil sing bali. Yen asil sing diasilake dipikolehi kanthi normal, bisa sukses.
exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);