一般 PHP 在 LINUX 伺服器上執行 shell 命令時,只能擁有 www:www 帳戶權限,想執行一些系統命令是沒有權限的,如重啟 apache,因為控制 apache 需要 root 權限,因此下面的辦法可以讓 PHP 執行 ROOT 權限的命令。

1、建立一個 C 語言文件,test.c,裡面內容如下
#include#include#include <sys/types.h>#include <sys/wait.h>#includevoid main(){pid_t pid;uid_t uid,euid;uid=getuid();euid=geteuid();setreuid(euid,uid);//下面代碼中加入想讓 PHP 執行的命令,如重啟 apachesystem(「/etc/init.d/httpd restart」);}
2、編譯這個 c 文件 gcc -o test test.c,生成 test 這個可執行文件
3、給這個 test 文件賦 root 權限,並且加入任何用戶都能訪問的權限
chown root:root testchmod u+s test
4、在 PHP 中調用 test 這個執行文件,來實現重啟 apache