环境是 lnmp
首先要修改 php.ini 中的 disable_functions 在里面把你需要使用的函数( system,exec ...)之类的注释掉。
下面以调用 fping 为例
安装 fping
cd /usr/local/src
wget http://fping.org/dist/fping-3.10.tar.gz
tar -xvf fping-3.10.tar.gz
cd fping-3.10
./configure
make && make install
增加权限
fping 一般安装在 /usr/local/sbin/ 目录下
增加权限
chown root:root /usr/local/sbin/fping
chmod u+s /usr/local/sbin/fping
php调用
foreach( $list as $key => &$val ){ //$val[ 'ip' ] $status_arr = ''; //这里一定要清空,不然$status_arr 会一直往后插入新的数据 //理论上可以但是实际上可能会报错 Array ( [0] => sh: line 1: fping: command not found ) exec( 'fping -r0 -t500 ' . $val[ 'ip' ] . ' 2>&1', $status_arr ); //一定要把错误输出到标准输出,否则没有返回值 //这个时候需要用完整的fping路径 exec( '/usr/local/sbin/fping -r0 -t500 ' . $val[ 'ip' ] . ' 2>&1', $status_arr ); if( isset( $status_arr[ 0 ] ) && preg_match( '/is alive/', $status_arr[ 0 ] ) ){ $val[ 'status' ] = 1; }else{ $val['status' ] = 0; }}