Solusi kanggo PHP ora duwe idin kanggo nglakokake perintah exec ing Linux

Referensi resmi sing gegandhengan

PHP exec Linux sudoers file Sudo Commands

Modifikasi 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);