ලිනක්ස් හි exec විධානය ක්රියාත්මක කිරීමට අවසර නොමැති PHP සඳහා විසඳුම
අදාළ නිල යොමු කිරීම්
PHP exec Linux sudoers file Sudo CommandsFastcgi ප්රකාරයේදී ක්රියාත්මක වන විට වෙනස් කිරීම්
PHP fastcgi ප්රකාරයේදී ක්රියාත්මක වන විට, එහි අවසරයන් එහි සත්කාරක වැඩසටහනෙන් උරුම වේ. පැහැදිලි කිරීම සඳහා උදාහරණයක් ලෙස අපාචේ ගනිමු. පළමුව, අපාචේ ක්රියාත්මක වන ගිණුම සොයාගත යුතු අතර, පසුව / etc / sudoers ගොනුව සංස්කරණය කිරීමට vi හෝ vim භාවිතා කර පහත සඳහන් උදාහරණ ගොනුවට එක් කරන්න. පහත දැක්වෙන අන්තර්ගතය තුළ, පළමුවෙන්ම ps විධානය භාවිතා කර අපාචේ ක්රියාවලිය httpd සොයා ගන්න, ආපසු ලබා දුන් ප්රති result ලයේ වම්පස ඇති ගිණුම් තොරතුරු දෙස බලන්න, ඉන්පසු apache ගිණුමට අවසරය එක් කිරීම සඳහා sudoers ගොනුව සංස්කරණය කරන්න.
ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
Php-fpm ප්රකාරයේදී ක්රියාත්මක වන විට වෙනස් කිරීම්
Php-fpm ප්රකාරයේදී ක්රියාත්මක වන විට එය වෙනම ක්රියාවලියක් ලෙස ක්රියාත්මක වේ. එබැවින් අපි මුලින්ම එහි ධාවන ගිණුම සොයාගෙන, පසුව ඉහත පරිදි බලය පැවරීමේ මෙහෙයුම් සිදු කරන්නෙමු.
ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
වෙනස්කම් ක්රියාත්මක වන බව තහවුරු කරන්න
ඉහත මෙහෙයුමෙන් පසුව, අපි බලය පැවරීම වෙනස් කළ නමුත් එය තවම බලාත්මක වී නැත.අපගේ වෙනස් කිරීම බලාත්මක කිරීම සඳහා අපි සේවාව නැවත ආරම්භ කළ යුතුය. අපගේ සැබෑ තත්වයට අනුව, අපාචේ හෝ පීඑච්පී-එෆ්පීඑම් සේවාව නැවත ආරම්භ කරන්න. ආපසු ලබා දුන් ප්රති result ලය බැලීමට exec විධානය ක්රියාත්මක කරන්න. ආපසු ලබා දුන් ප්රති result ලය සාමාන්යයෙන් ලබා ගන්නේ නම් එය සාර්ථක වේ.
exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);