由于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搭建测试服务器》