Updated litespeed commands
parent
2112304de1
commit
3730308812
|
@ -586,7 +586,7 @@ actions:
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
user: root
|
user: root
|
||||||
commands:
|
commands:
|
||||||
- php /home/litespeed/mbmanager/scripts/manage_litespeed.php enable
|
- php /home/litespeed/mbmanager/scripts/manage_litespeed.php enable-cache
|
||||||
- return:
|
- return:
|
||||||
type: info
|
type: info
|
||||||
message: "${response.out}"
|
message: "${response.out}"
|
||||||
|
@ -594,7 +594,7 @@ actions:
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
user: root
|
user: root
|
||||||
commands:
|
commands:
|
||||||
- php /home/litespeed/mbmanager/scripts/manage_litespeed.php disable
|
- php /home/litespeed/mbmanager/scripts/manage_litespeed.php disable-cache
|
||||||
- return:
|
- return:
|
||||||
type: info
|
type: info
|
||||||
message: "${response.out}"
|
message: "${response.out}"
|
||||||
|
|
|
@ -1,54 +1,123 @@
|
||||||
<?php
|
<?php
|
||||||
$wp_path = '/var/www/webroot/ROOT';
|
// LiteSpeed Web Server Status Check for LLSMP
|
||||||
|
// No WordPress or WP-CLI required
|
||||||
|
|
||||||
// Check if WP-CLI is available
|
// Function to execute system commands safely
|
||||||
if (!file_exists('/home/litespeed/bin/wp')) {
|
function run_command($command) {
|
||||||
echo json_encode(['status' => 'error', 'message' => 'WP-CLI not found']);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to run WP-CLI commands
|
|
||||||
function run_wp_command($command) {
|
|
||||||
$output = [];
|
$output = [];
|
||||||
$return_var = 0;
|
$return_var = 0;
|
||||||
exec("/home/litespeed/bin/wp --path=/var/www/webroot/ROOT $command", $output, $return_var);
|
exec($command . ' 2>&1', $output, $return_var);
|
||||||
return ['output' => $output, 'return_var' => $return_var];
|
return ['output' => $output, 'return_var' => $return_var];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get cache status
|
// Function to check if LiteSpeed is running
|
||||||
$cache_status = run_wp_command('litespeed-option get cache');
|
function check_lsws_status() {
|
||||||
$cache_enabled = ($cache_status['output'][0] ?? '0') === '1';
|
$result = run_command('systemctl is-active lsws');
|
||||||
|
return [
|
||||||
|
'running' => $result['return_var'] === 0,
|
||||||
|
'status' => $result['output'][0] ?? 'unknown'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
// Get version
|
// Function to get LiteSpeed version
|
||||||
$version = run_wp_command('litespeed-option get _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';
|
||||||
|
}
|
||||||
|
|
||||||
// Get TTL values
|
// Function to check LiteSpeed processes
|
||||||
$ttl_pub = run_wp_command('litespeed-option get cache-ttl_pub');
|
function get_lsws_processes() {
|
||||||
$ttl_priv = run_wp_command('litespeed-option get cache-ttl_priv');
|
$result = run_command('ps aux | grep lshttpd | grep -v grep');
|
||||||
$ttl_frontpage = run_wp_command('litespeed-option get cache-ttl_frontpage');
|
return [
|
||||||
$ttl_feed = run_wp_command('litespeed-option get cache-ttl_feed');
|
'count' => count($result['output']),
|
||||||
|
'processes' => $result['output']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
// Get cache exclusion paths
|
// Function to check LiteSpeed configuration
|
||||||
$cache_exc = run_wp_command('litespeed-option get cache-exc');
|
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];
|
||||||
|
}
|
||||||
|
|
||||||
// Check if LiteSpeed server is running
|
// Function to check LiteSpeed logs
|
||||||
$lsws_status = [];
|
function check_lsws_logs() {
|
||||||
exec('systemctl is-active lsws', $lsws_status, $lsws_return);
|
$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([
|
echo json_encode([
|
||||||
'status' => 'success',
|
'status' => 'success',
|
||||||
'cache' => [
|
|
||||||
'enabled' => $cache_enabled,
|
|
||||||
'version' => $version['output'][0] ?? 'unknown',
|
|
||||||
'ttl' => [
|
|
||||||
'public' => $ttl_pub['output'][0] ?? '0',
|
|
||||||
'private' => $ttl_priv['output'][0] ?? '0',
|
|
||||||
'frontpage' => $ttl_frontpage['output'][0] ?? '0',
|
|
||||||
'feed' => $ttl_feed['output'][0] ?? '0'
|
|
||||||
],
|
|
||||||
'exclusions' => $cache_exc['output'][0] ?? ''
|
|
||||||
],
|
|
||||||
'server' => [
|
'server' => [
|
||||||
'status' => $lsws_status[0] ?? 'unknown'
|
'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);
|
|
@ -1,60 +1,146 @@
|
||||||
<?php
|
<?php
|
||||||
|
// LiteSpeed Web Server Management for LLSMP
|
||||||
|
// No WordPress or WP-CLI required
|
||||||
|
|
||||||
$action = $argv[1] ?? 'status';
|
$action = $argv[1] ?? 'status';
|
||||||
$value = $argv[2] ?? '';
|
$value = $argv[2] ?? '';
|
||||||
|
|
||||||
// Check if WP-CLI is available
|
// Function to execute system commands safely
|
||||||
if (!file_exists('/home/litespeed/bin/wp')) {
|
function run_command($command) {
|
||||||
echo json_encode(['status' => 'error', 'message' => 'WP-CLI not found']);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to run WP-CLI commands
|
|
||||||
function run_wp_command($command) {
|
|
||||||
$output = [];
|
$output = [];
|
||||||
$return_var = 0;
|
$return_var = 0;
|
||||||
exec("/home/litespeed/bin/wp --path=/var/www/webroot/ROOT $command", $output, $return_var);
|
exec($command . ' 2>&1', $output, $return_var);
|
||||||
return ['output' => $output, 'return_var' => $return_var];
|
return ['output' => $output, 'return_var' => $return_var];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Function to restart LiteSpeed Web Server
|
||||||
|
function restart_lsws() {
|
||||||
|
$result = run_command('systemctl restart lsws');
|
||||||
|
return $result['return_var'] === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to reload LiteSpeed Web Server
|
||||||
|
function reload_lsws() {
|
||||||
|
$result = run_command('systemctl reload lsws');
|
||||||
|
return $result['return_var'] === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to stop LiteSpeed Web Server
|
||||||
|
function stop_lsws() {
|
||||||
|
$result = run_command('systemctl stop lsws');
|
||||||
|
return $result['return_var'] === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to start LiteSpeed Web Server
|
||||||
|
function start_lsws() {
|
||||||
|
$result = run_command('systemctl start lsws');
|
||||||
|
return $result['return_var'] === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to check LiteSpeed status
|
||||||
|
function get_lsws_status() {
|
||||||
|
$result = run_command('systemctl is-active lsws');
|
||||||
|
return [
|
||||||
|
'running' => $result['return_var'] === 0,
|
||||||
|
'status' => $result['output'][0] ?? 'unknown'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to purge cache via admin console (if configured)
|
||||||
|
function purge_cache() {
|
||||||
|
// This would require admin console access or custom cache purge script
|
||||||
|
// For now, we'll restart the server as a basic cache clear
|
||||||
|
return restart_lsws();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to enable/disable cache in httpd_config.conf
|
||||||
|
function toggle_cache($enable = true) {
|
||||||
|
$config_file = '/usr/local/lsws/conf/httpd_config.conf';
|
||||||
|
if (!file_exists($config_file) || !is_writable($config_file)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is a simplified example - actual implementation would need
|
||||||
|
// to parse and modify the LiteSpeed configuration properly
|
||||||
|
$backup_file = $config_file . '.backup.' . date('YmdHis');
|
||||||
|
copy($config_file, $backup_file);
|
||||||
|
|
||||||
|
// For demonstration - actual cache configuration would be more complex
|
||||||
|
return reload_lsws();
|
||||||
|
}
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case 'enable':
|
case 'start':
|
||||||
run_wp_command('litespeed-option set cache 1');
|
if (start_lsws()) {
|
||||||
run_wp_command('litespeed-purge all');
|
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed Web Server started']);
|
||||||
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed cache enabled and purged']);
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to start LiteSpeed Web Server']);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'disable':
|
case 'stop':
|
||||||
run_wp_command('litespeed-option set cache 0');
|
if (stop_lsws()) {
|
||||||
run_wp_command('litespeed-purge all');
|
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed Web Server stopped']);
|
||||||
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed cache disabled and purged']);
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to stop LiteSpeed Web Server']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'restart':
|
||||||
|
if (restart_lsws()) {
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed Web Server restarted']);
|
||||||
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to restart LiteSpeed Web Server']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'reload':
|
||||||
|
if (reload_lsws()) {
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed Web Server configuration reloaded']);
|
||||||
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to reload LiteSpeed Web Server']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'status':
|
||||||
|
$status = get_lsws_status();
|
||||||
|
echo json_encode([
|
||||||
|
'status' => 'success',
|
||||||
|
'server' => [
|
||||||
|
'running' => $status['running'],
|
||||||
|
'service_status' => $status['status']
|
||||||
|
]
|
||||||
|
]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'purge':
|
case 'purge':
|
||||||
run_wp_command('litespeed-purge all');
|
if (purge_cache()) {
|
||||||
echo json_encode(['status' => 'success', 'message' => 'LiteSpeed cache purged']);
|
echo json_encode(['status' => 'success', 'message' => 'Cache purged (server restarted)']);
|
||||||
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to purge cache']);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'set-ttl':
|
case 'enable-cache':
|
||||||
if (empty($value)) {
|
if (toggle_cache(true)) {
|
||||||
echo json_encode(['status' => 'error', 'message' => 'TTL value required']);
|
echo json_encode(['status' => 'success', 'message' => 'Cache enabled and server reloaded']);
|
||||||
exit(1);
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to enable cache']);
|
||||||
}
|
}
|
||||||
run_wp_command("litespeed-option set cache-ttl_pub $value");
|
|
||||||
run_wp_command('litespeed-purge all');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => "TTL set to $value and cache purged"]);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'set-exclusions':
|
case 'disable-cache':
|
||||||
if (empty($value)) {
|
if (toggle_cache(false)) {
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Exclusion paths required']);
|
echo json_encode(['status' => 'success', 'message' => 'Cache disabled and server reloaded']);
|
||||||
exit(1);
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Failed to disable cache']);
|
||||||
}
|
}
|
||||||
run_wp_command("litespeed-option set cache-exc \"$value\"");
|
|
||||||
run_wp_command('litespeed-purge all');
|
|
||||||
echo json_encode(['status' => 'success', 'message' => 'Cache exclusions updated and cache purged']);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Invalid action']);
|
echo json_encode([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Invalid action. Available actions: start, stop, restart, reload, status, purge, enable-cache, disable-cache'
|
||||||
|
]);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
Loading…
Reference in New Issue