Solusi pikeun PHP teu ngagaduhan ijin pikeun ngaéksekusi paréntah exec dina Linux
Rujukan resmi anu aya hubunganana
PHP exec Linux sudoers file Sudo CommandsModifikasi nalika ngajalankeun dina modeu fastcgi
Nalika PHP ngalir dina modeu fastcgi, idin na diwariskeun tina program host na. Hayu urang nyandak Apache salaku conto pikeun ngajelaskeun. Mimiti, urang kedah milarian akun anu ngajalankeun Apache, teras nganggo vi atanapi vim pikeun ngédit file / etc / sudoers, sareng nambihan conto rujukan ieu kana file. Dina eusi ieu, nganggo heula paréntah ps pikeun milari prosés apache httpd, tingali inpormasi akun di sisi kénca hasil anu dikembalikan, teras edit file sudoers pikeun nambihan otorisasina kana akun apache.
ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
Modifikasi nalika ngajalankeun dina modeu php-fpm
Nalika ngajalankeun dina modeu php-fpm, éta ngalir salaku prosés anu misah. Janten urang mimiti mendakan akun na, teras ngajalankeun operasi otorisasina sapertos di luhur.
ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
Pariksa yén parobihanana tiasa diterapkeun
Saatos operasi di luhur, kami ngarobih otorisasina, tapi éta henteu acan épéktip. Urang kedah ngabalikan deui layananna pikeun modifikasi kami diberlakukeun. Numutkeun kana kaayaan urang anu saleresna, balikan deui layanan apache atanapi php-fpm. Teras lakukeun paréntah exec pikeun ningali hasil anu dipulangkeun. Upami hasil anu dikintunkeun diala sacara normal, éta hasil.
exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);