123 lines
3.7 KiB
PHP
123 lines
3.7 KiB
PHP
<?php
|
|
// LiteSpeed Web Server Status Check for LLSMP
|
|
// No WordPress or WP-CLI required
|
|
|
|
// Function to execute system commands safely
|
|
function run_command($command) {
|
|
$output = [];
|
|
$return_var = 0;
|
|
exec($command . ' 2>&1', $output, $return_var);
|
|
return ['output' => $output, 'return_var' => $return_var];
|
|
}
|
|
|
|
// Function to check if LiteSpeed is running
|
|
function check_lsws_status() {
|
|
$result = run_command('systemctl is-active lsws');
|
|
return [
|
|
'running' => $result['return_var'] === 0,
|
|
'status' => $result['output'][0] ?? 'unknown'
|
|
];
|
|
}
|
|
|
|
// Function to get LiteSpeed version
|
|
function get_lsws_version() {
|
|
$result = run_command('/usr/local/lsws/bin/lshttpd -v');
|
|
if ($result['return_var'] === 0 && !empty($result['output'])) {
|
|
foreach ($result['output'] as $line) {
|
|
if (strpos($line, 'LiteSpeed') !== false) {
|
|
return trim($line);
|
|
}
|
|
}
|
|
}
|
|
return 'unknown';
|
|
}
|
|
|
|
// Function to check LiteSpeed processes
|
|
function get_lsws_processes() {
|
|
$result = run_command('ps aux | grep lshttpd | grep -v grep');
|
|
return [
|
|
'count' => count($result['output']),
|
|
'processes' => $result['output']
|
|
];
|
|
}
|
|
|
|
// Function to check LiteSpeed configuration
|
|
function check_lsws_config() {
|
|
$config_file = '/usr/local/lsws/conf/httpd_config.conf';
|
|
if (file_exists($config_file)) {
|
|
return [
|
|
'config_exists' => true,
|
|
'config_readable' => is_readable($config_file),
|
|
'last_modified' => date('Y-m-d H:i:s', filemtime($config_file))
|
|
];
|
|
}
|
|
return ['config_exists' => false];
|
|
}
|
|
|
|
// Function to check LiteSpeed logs
|
|
function check_lsws_logs() {
|
|
$log_dir = '/usr/local/lsws/logs';
|
|
$error_log = $log_dir . '/error.log';
|
|
$access_log = $log_dir . '/access.log';
|
|
|
|
return [
|
|
'log_dir_exists' => is_dir($log_dir),
|
|
'error_log' => file_exists($error_log) ? [
|
|
'exists' => true,
|
|
'size' => filesize($error_log),
|
|
'last_modified' => date('Y-m-d H:i:s', filemtime($error_log))
|
|
] : ['exists' => false],
|
|
'access_log' => file_exists($access_log) ? [
|
|
'exists' => true,
|
|
'size' => filesize($access_log),
|
|
'last_modified' => date('Y-m-d H:i:s', filemtime($access_log))
|
|
] : ['exists' => false]
|
|
];
|
|
}
|
|
|
|
// Function to check listening ports
|
|
function check_lsws_ports() {
|
|
$result = run_command('netstat -tlnp | grep lshttpd');
|
|
$ports = [];
|
|
foreach ($result['output'] as $line) {
|
|
if (preg_match('/:(\\d+)\\s/', $line, $matches)) {
|
|
$ports[] = $matches[1];
|
|
}
|
|
}
|
|
return array_unique($ports);
|
|
}
|
|
|
|
// Function to get basic system info
|
|
function get_system_info() {
|
|
return [
|
|
'php_version' => phpversion(),
|
|
'server_time' => date('Y-m-d H:i:s'),
|
|
'uptime' => trim(file_get_contents('/proc/uptime')),
|
|
'load_average' => sys_getloadavg()
|
|
];
|
|
}
|
|
|
|
// Main execution
|
|
$lsws_status = check_lsws_status();
|
|
$lsws_version = get_lsws_version();
|
|
$lsws_processes = get_lsws_processes();
|
|
$lsws_config = check_lsws_config();
|
|
$lsws_logs = check_lsws_logs();
|
|
$lsws_ports = check_lsws_ports();
|
|
$system_info = get_system_info();
|
|
|
|
// Output comprehensive LiteSpeed status
|
|
echo json_encode([
|
|
'status' => 'success',
|
|
'server' => [
|
|
'name' => 'LiteSpeed Web Server',
|
|
'version' => $lsws_version,
|
|
'running' => $lsws_status['running'],
|
|
'service_status' => $lsws_status['status'],
|
|
'process_count' => $lsws_processes['count'],
|
|
'listening_ports' => $lsws_ports
|
|
],
|
|
'configuration' => $lsws_config,
|
|
'logs' => $lsws_logs,
|
|
'system' => $system_info
|
|
], JSON_PRETTY_PRINT);
|