I am running PHP 7.2 on Ubuntu 18.04, Apache2.
What I want is simple : check server status, show if online or offline.
Server not responds if it is under http.(Connection always have to be https)
Server's certification is self-signed.
I'll say it is https://servername:10010/
The codes I tried are those :
$host = 'https://servername';
if($socket =@ fsockopen($host, 10010, $errno, $errstr, 10)) {
echo 'online!';
fclose($socket);
} else {
echo 'offline.';
}
and
$host = 'ssl://servername';
if($socket =@ fsockopen($host, 10010, $errno, $errstr, 10)) {
echo 'online!';
fclose($socket);
} else {
echo 'offline.';
}
and
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2('https://servername:10010/', HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'ssl_verify_peer' => FALSE,
'ssl_verify_host' => FALSE
));
try {
$response = $request->send();
if (200 == $response->getStatus()) {
//echo $response->getBody();//Get content of page
var_dump($response->getStatus());
} else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .$response->getReasonPhrase();
}
} catch (HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
and
$data = "";
$timeout = "1";
$services = array();
$services[] = array("port" => "10010", "service" => "blabla", "ip" => "https://servername") ;
$data .= "";
foreach ($services as $service) {
if($service['ip']==""){
$service['ip'] = "localhost";
}
$fp = @fsockopen($service['ip'], $service['port'], $errno, $errstr, $timeout);
if (!$fp) {
$data .= "Off";
//fclose($fp);
} else {
$data .= "On";
}
}
echo $data;
None of theese worked.
Second One's Error (I saw) was Connection timed out. (BTW server is up)