由於Web Server以及PHP的實現方式所限我們在現實環境中很難利用PHP去調用一些Linux中需要root權限才能執行的程序對此我從網上找到另外一種方式來繞開這個限制首先先寫個c程序中轉調用系統命令然後用PHP去執行此c程序
c程序
首先寫個c文件比如/usr/local/ismole/wc
//note 由於wordpress編輯器的原因請將此代碼中頭文件多余的空格去除
#include < stdioh>
#include < stdlibh>
#include < systypesh>
#include < unistdh>
int main()
{
uid_t uid euid;
//note 獲得當前的uid
uid = getuid();
//note 獲得當前euid
euid = geteuid();
//note 交換這兩個id
if(setreuid(euid uid))
perror(setreuid);
//note 執行將要執行linux系統命令
system(/usr/bin/w);
return ;
}
//note 由於wordpress編輯器的原因請將此代碼中頭文件多余的空格去除
編譯該文件gcc o ipt Wall wc這時會在當前目錄下生成程序w
改變此程序的屬主chmod u+s /w
PHP執行
文件內容如下放在web目錄下訪問就會輸出當前的服務器負載情況
< ?php
//note key的驗證過程
if($key != $authkey) {
// exit(key error);
}
$last_line = exec(/usr/local/ismole/w $retval);
$returnArray = explode(load average: $retval[]);
$returnString = $returnArray[];
echo $returnString;
按照上面的實例我們可以用PHP來做任何我們想執行的Linux系統命令SVN更新服務器監控備份恢復日常維護等等比如《利用SVN搭建測試服務器》
From:http://tw.wingwit.com/Article/program/PHP/201311/20828.html