我创建了一个监控Network IP
或Server Status
的应用程序。它适用于Windows xampp server
并且还在linux centos 6.0
上进行了测试。两者都运作良好。但是,当我将脚本上传到安装了cpanel的网站时,我的脚本不在那里工作。那是一个linux托管服务器
我的Windows Ping命令:
$exec = exec( "ping www.google.com -n 3 ". $output, $status );
我的Centos Ping命令:
$exec = exec( "ping www.google.com -c 3 ". $output, $status );
$output
和$status
变量都返回准确的值。但是在cpanel中$output
为空,$status
变量返回2而不是0或1
需要帮助 谢谢,
答案 0 :(得分:1)
检查您的主机提供商是否允许使用此功能,如果是,那么
尝试使用这样的exec:
$exec = exec( "ping www.google.com -c 3 ", $output, $status );
如果它不起作用,你可以尝试另一个像exec这样的php函数:
system('ping www.google.com -c 3 ', $output);
你可以使用nagios来监控并在nagios上构建你的应用程序
答案 1 :(得分:0)
请首先检查,您的托管服务提供商已禁用exec功能,或者不使用给定功能。此功能将列出您的托管服务提供商禁用的所有功能。
function disabled_functions(){
$disabled = explode(',', ini_get('disable_functions'));
return $disabled;
}
echo '<pre>';
print_r(disabled_functions());
如果上面的disable_functions()的输出中存在exec,那么您必须咨询托管服务提供商以允许shell访问和exec。 通常,由于安全问题,托管服务提供商会禁用外壳程序访问和类似于exec的功能。