在现代的IT环境中,服务器管理员需要能够随时随地获取服务器的实时统计数据。随着移动设备的普及,Ultrabook因其轻便、快速和智能的特性,成为了理想的选择。本文将介绍如何通过Windows 8应用在Ultrabook上访问Linux服务器的cPanel控制面板,并获取实时统计数据。
Ultrabook是访问Linux服务器控制面板的理想设备,原因如下:
Windows 8应用可以提供以下优势:
传统的服务器管理员需要在控制环境中访问控制面板来查看统计数据。现在,他们需要一个友好的环境和易于使用的设备。Windows 8应用提供了一个用户友好的界面,使得访问和操作更加简单。
Windows 8应用通过HTML和JavaScript编写,可以访问存储在Linux服务器上的服务器端页面。用户和数据之间有三层:
服务器端PHP页面连接到统计数据库,该数据库不断收集实时统计数据。这里使用了"awstats",这是一个为Linux控制面板预构建的API。
require (
'config.php'
);
//
// 检查有效认证用户
if (!isset($_SERVER[
'PHP_AUTH_USER'
]) || $_SERVER[
'PHP_AUTH_USER'
] != $username ||
$_SERVER[
'PHP_AUTH_PW'
] != $password) {
header(
'WWW-Authenticate: Basic realm="Site Statistics"'
);
header(
'HTTP/1.0 401 Unauthorized'
);
echo 'Authorization Required.';
exit;
}
else {
// 只有有效用户才处理
if (isset($_REQUEST[
'image'
])) {
// 如果请求图像,只需要文件名
$request = $_REQUEST[
'image'
];
}
else {
// 否则构建查询到cPanel
$request =
'awstats.pl?';
// 如果没有请求特定的框架,
// 还没有设置网站,所以添加那个信息
if (empty($_REQUEST[
'framename'
])) {
$request .= "config=$site&ssl=⟨=en";
}
$request .= $_SERVER[
'QUERY_STRING'
];
// 只是为了简化后面的测试
$notImage = TRUE;
}
// 结束 if image
$Curl = curl_init();
curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($Curl, CURLOPT_URL,
"https://$server:2083/"
.$request);
curl_setopt($Curl, CURLOPT_USERPWD, $cpanelusername.
':'
.$cpanelpassword);
$Output = curl_exec($Curl);
if (curl_errno($Curl) > 0) {
echo 'Curl Error: ' . curl_error($Curl);
curl_close($Curl);
exit;
}
curl_close($Curl);
if ($notImage) {
// 让做一些解析,用代理脚本可以工作的路径替换路径
if (empty($_REQUEST[
'framename'
]) || $_REQUEST[
'framename'
] ==
'index') {
$Output = str_replace(
'src="',
'src="'
.$_SERVER[
'PHP_SELF'
]
.'?', $Output);
}
else {
$Output = str_replace(
'src="http://www.codeproject.com/',
'src="'
.$_SERVER[
'PHP_SELF'
]
.'?image=', $Output);
}
$Output = str_replace(
'
上述脚本需要配置数据,如下所示:
//
// 用于授予访问统计页面的用户名和密码
$username =
"demoadmin";
$password =
"demopass";
//
// 想要统计数据的域名(包括子域名)
$site =
"xyz.com";
//
// whm/cpanel主机名
$server =
"xyz.com";
//
// cpanel用户名和密码
$cpanelusername =
"cpaneladmin";
$cpanelpassword =
'cpanelpass';
?>