cStats - cPanel 统计应用程序





5.00/5 (11投票s)
立即从 Windows 应用商店应用访问实时 Linux Web 服务器统计信息。
引言
cStats
是一个面向 Windows 8 的 cPanel
统计 Metro 应用程序。这是一个 Windows 应用商店应用,可以直接通过 Windows 应用商店下载。cPanel
是一个用于 Linux 服务器的控制面板,我的目标是从安装了 Windows 8 的 Ultrabook 访问 Linux 控制面板。
cPanel
控制您所有的 Linux Web 服务器环境,并生成实时统计数据,例如用户访问量、客户端 IP 跟踪、热门下载跟踪、服务器的总访问量和点击量,以及所有对企业生成网站成功报告有用的实时统计数据。
为什么是 Ultrabook 来运行此应用程序?对于这个逻辑性的问题,请考虑以下场景:
- 通过 Windows 8 应用访问 Linux 服务器
- 从客户端语言(HTML/JavaScript)执行服务器端脚本页面(PHP)和服务器端数据库(MySQL)
- 服务器管理员需要更快、更高效地获取服务器统计数据,甚至是在长假期间也能随时随地获取
所有这些都可以通过更轻便、更快速、更智能的设备实现,除了 Ultrabook 别无他选。只需简单的触摸和滑动,您的实时数据就在屏幕上。
此应用程序的另一个主要目标是提供一个非常丰富的图形用户界面,其中包含集成了数据图表、图形等,这些可以通过 Ultrabook 的触摸界面或摇动 UI 的强大功能进一步规范化。
此应用程序还收集系统管理员正在访问服务器的实时地理位置信息。
(以下是当前开发阶段的截图。仍处于 50% 的阶段,需要添加更丰富的 UI。)
背景
传统上,如果服务器管理员想访问 Web 服务器的统计信息,他们必须访问控制面板并查看统计信息。访问控制面板和实时数据可以通过生产服务器在受控环境中完成。
如今,服务器管理员需要一个友好的环境和一个易于使用的设备。可访问性和用户友好的环境是任何应用程序的关键方面。Ultrabooks 的简易用户界面、触摸和滑动操作始终优于笨重的笔记本电脑和服务器统计设备。
Using the Code
这个 Windows 8 应用,基本上是用 HTML、JavaScript 编写的,访问存储在 Linux 服务器上的服务器端页面,用户和数据之间将有 3 层。
- 第 1 层:用户
- 第 2 层:客户端页面(Windows 8 Metro 应用)
- 第 3 层:服务器端页面(PHP)
- 第 4 层:统计数据库
服务器端 PHP 页面将连接到统计数据库,该数据库会不断从数据库收集实时统计数据。我使用了“awstats
”,这是一个预制的 Linux 控制面板 API。
以下是我编写的“awstats
”的 PHP 访问页面。
<?php
require ('config.php');
// check for valid auth user
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 {
// only processed if we have a valid user
if (isset($_REQUEST['image'])) {
// if an image is requested, we only need the filename
$request = $_REQUEST['image'];
} else {
// otherwise we build our query to cPanel
$request = 'awstats.pl?';
// if we're not requesting a specific frame,
// we don't have our site set yet, so add that info
if(empty($_REQUEST['framename'])) {
$request .= "config=$site&ssl=&lang=en";
}
$request .= $_SERVER['QUERY_STRING'];
// just used to simplify the test later
$notImage = TRUE;
} // end 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) {
// let's do some parsing to replace paths with ones that work with our proxy script
if (empty($_REQUEST['framename']) || $_REQUEST['framename'] == 'index') {
$Output = str_replace('src="', 'src="'.$_SERVER['PHP_SELF'].'?', $Output);
} else {
$Output = str_replace('src="https://codeproject.org.cn/',
'src="'.$_SERVER['PHP_SELF'].'?image=', $Output);
}
$Output = str_replace('<form', '<form method="get"', $Output);
$Output = str_replace('action="', 'action="'.$_SERVER['PHP_SELF'].'?', $Output);
$Output = str_replace('href="', 'href="'.$_SERVER['PHP_SELF'].'?', $Output);
$Output = str_replace('href="'.$_SERVER['PHP_SELF'].'?https://', 'href="https://', $Output);
$Output = str_replace('awstats.pl?', '', $Output);
} // end if notImage
echo $Output;
} // end if valid user
?>
这需要上面脚本中包含的配置数据。所有 cPanel
凭据都存储在下面的配置文件中:config.php。
<?php
// username and password used to grant access to view stats pages
$username = "demoadmin";
$password = "demopass";
// domain name (including subdomain) that you want stats for
$site = "xyz.com";
// whm/cpanel hostname
$server = "xyz.com";
// cpanel usename and password
$cpanelusername = "cpaneladmin";
$cpanelpassword = 'cpanelpass';
?>
将这两个脚本放在启用了 cPanel
的 Linux 服务器上的一个目录中,然后访问该页面。它将在一个页面中显示实时服务器统计数据。
此时,所有服务器配置访问部分都已完成。现在我需要将上述脚本生成的数据访问到具有丰富 UI 和控件的 Windows 8 Metro 应用中。
客户端编码仍需完成,将是 Windows 8 应用商店的 HTML/JavaScript 应用。
历史
- 2012 年 10 月 2 日
- 初步撰写分析和设计阶段
- 2012 年 10 月 14 日
- 已添加的功能(设计阶段)
- 语义化缩放和多点触控
- 通过全球 GPS 检查服务器延迟
- 已添加的功能(设计阶段)
- 2013 年 1 月 27 日
- GUI 和后端更新大量,已迁移至 Windows Azure 云
成功 - 90%
- GUI 和后端更新大量,已迁移至 Windows Azure 云
下个版本预期功能
代理支持:即使您的 Windows 8 平板电脑/PC 未直接连接到互联网,用户也可以通过代理支持访问统计信息。(它应该在网络中,并且服务器应直接连接到互联网。)
关注点
关于此应用最让我兴奋的是能够从 Windows 8 Metro 应用中的客户端页面访问位于 Linux 服务器上的服务器端页面。
这个应用的 50% 可用模块已经通过了在 Windows 8 AppFest,班加罗尔组织的“Microsoft 应用卓越实验室”。
这个应用程序是我为 Softaculous Ltd 开发的内部工具。但在该应用程序开发 90% 后,它将通过 Winspark Network 发布。