Я пишу инструмент ping с помощью CakePHP 3. Код работает на моем сервере разработки, возвращая правильное состояние 0
. Но на рабочем сервере он всегда показывает код состояния 2
вместо 0
, независимо от того, действителен ли $ip
.exec ('ping'), работающий на сервере разработки, но не в производстве
Это мой код:
public function testDomain(){
if($this->request->is('post')){
$ip = $this->request->data['domain'];
$starttime = microtime(true);
$stoptime = microtime(true);
$total_time = ($stoptime - $starttime) * 1000;
exec("ping -n 3 $ip", $output, $status);
print_r($status);
if (0 == $status) {
echo $mode = 'up';
if($total_time <= '500'){
$result = 'Very Fast';
}else if($total_time <='1000'){
$result = 'Fast';
}else if($total_time <='1500'){
$result ='Good';
}else if($total_time <='2500'){
$result ='Slow';
}else if($total_time <='3000'){
$result ='Very Slow';
}else{
$result ='down';
}
echo $ip.' '.'is'.' '.$result;
}else{
echo $mode = 'down';
}
}
exit;
}
спасибо сэр свою работу – Rishu