DOCUMENTATION: - DETECTION_TROUBLESHOOTING.md: Complete troubleshooting guide - How detection works step-by-step - Common issues on AlmaLinux, CentOS, Ubuntu, Debian - OS-specific solutions and file paths - Diagnostic commands and usage examples COVERS: - Quick start: How to check what was detected - Specific issues: Apache, MySQL, Nginx, Firewall not detected - Silent detection problems (cache-related) - Advanced debugging and manual testing - How to report detection issues QUICK REFERENCE: bash launcher.sh --detect-only # Check what was detected bash test-detection.sh # Full diagnostic bash test-detection.sh verbose # Detailed diagnostic
8.3 KiB
System Detection Troubleshooting Guide
Overview
The Server Toolkit automatically detects your system configuration on startup:
- Operating System (CentOS, AlmaLinux, Rocky Linux, Ubuntu, Debian, etc.)
- Control Panel (cPanel, Plesk, InterWorx, or Standalone)
- Web Server (Apache/httpd, Nginx, LiteSpeed, etc.)
- Database (MySQL, MariaDB, PostgreSQL)
- Firewall (CSF, firewalld, iptables, UFW)
- PHP versions available on system
If you're not seeing these detected correctly, use these diagnostic tools.
Quick Start: Test Detection
Option 1: Check What Was Detected (Fastest)
bash launcher.sh --detect-only
This shows your current system configuration in a clean format:
Control Panel: cpanel 11.134.0.11
Operating System: almalinux 9.7
Web Server: apache 2.4.66
Database: mariadb 10.6.25
Firewall: csf 16.12 (no)
PHP Versions: 8.0.30 8.1.34 8.2.30
Option 2: Run Full Diagnostic (More Detailed)
bash test-detection.sh
This performs step-by-step testing:
- [STEP 1] Tests if commands exist on system
- [STEP 2] Attempts version detection for each service
- [STEP 3] Tests control panel detection
- [STEP 4] Tests OS detection
- [STEP 5] Tests firewall detection
- [STEP 6] Runs full system detection
- [STEP 7] Displays detected variables
- [STEP 8] Summary with warnings
Option 3: Verbose Diagnostic (Maximum Detail)
bash test-detection.sh verbose
Same as above, but also shows file paths and exact locations where services were found.
Specific Issues & Solutions
Issue: Apache/httpd Not Detected
Test:
which httpd
httpd -v
If httpd is not found:
- Apache/httpd may not be installed
- Check:
yum list installed | grep httpd(RHEL/CentOS/AlmaLinux) - Check:
apt list --installed | grep apache2(Ubuntu/Debian)
If httpd exists but not detected:
- Run diagnostic:
bash test-detection.sh - Check STEP 1 output for "✓ Apache (httpd)"
- If found but not detected in STEP 6, report the issue
On AlmaLinux/Rocky (IMPORTANT):
- AlmaLinux uses
httpd(notapache2like Debian) - Toolkit checks for BOTH, so this should work
- If still not working, verify:
command -v httpd
Issue: MySQL/MariaDB Not Detected
Test:
which mysql
mysql --version
If mysql is not found:
- MySQL/MariaDB may not be installed
- Check:
yum list installed | grep -i mysql(RHEL-based) - Check:
apt list --installed | grep mysql(Debian-based)
If mysql exists but not detected:
- Run:
bash test-detection.sh verbose - Check STEP 2 "MySQL/MariaDB Version Detection" output
- Verify output of:
mysql --version - If command works but detection fails, report issue
Issue: Nginx/Apache Both Missing
On Standalone Servers:
- Web server MUST be installed for most toolkit features
- Install Apache:
yum install httpdorapt install apache2 - Install Nginx:
yum install nginxorapt install nginx
Verify installation:
bash launcher.sh --detect-only
Issue: Firewall Not Detected
Possible causes:
- No firewall installed (acceptable on standalone)
- Firewall installed but toolkit doesn't detect it yet
Check available firewalls:
# CSF (ConfigServer Firewall)
[ -f /etc/csf/csf.conf ] && echo "CSF found" || echo "CSF not found"
# firewalld
command -v firewall-cmd && echo "firewalld found" || echo "firewalld not found"
# iptables
command -v iptables && echo "iptables found" || echo "iptables not found"
# UFW (Ubuntu)
command -v ufw && echo "UFW found" || echo "UFW not found"
Issue: Control Panel Not Detected on Standalone
This is NORMAL - standalone servers have no control panel.
Expected output:
Control Panel: none
The toolkit should still work fine with:
SYS_LOG_DIR="/var/log/apache2"(or/var/log/httpd)SYS_USER_HOME_BASE="/home"
Issue: OS Not Detected
Test:
cat /etc/os-release
# or
cat /etc/redhat-release
Supported OSes:
- ✅ CentOS 7, 8, 9
- ✅ AlmaLinux 8, 9
- ✅ Rocky Linux 8, 9
- ✅ CloudLinux 7, 8, 9
- ✅ Ubuntu 20.04, 22.04, 24.04
- ✅ Debian 11, 12
If your OS isn't showing, it may not be in the detection list.
How Detection Works
Detection Sequence
-
Common Functions Loaded (
lib/common-functions.sh)- Defines helper functions like
command_exists - Defines print functions for output
- Defines helper functions like
-
System Detect Library Loaded (
lib/system-detect.sh)- Detects control panel (
/usr/local/cpanel/version, etc.) - Detects OS (
/etc/os-release) - Detects web server (checks for
httpd,apache2,nginx, etc.) - Detects database (
mysql --version) - Detects PHP versions
- Detects firewall (CSF, firewalld, iptables, UFW)
- Detects control panel (
-
Variables Set
SYS_CONTROL_PANEL: cpanel, plesk, interworx, or noneSYS_OS_TYPE: almalinux, ubuntu, etc.SYS_WEB_SERVER: apache, nginx, litespeed, or unknownSYS_DB_TYPE: mysql, mariadb, postgresql, or noneSYS_FIREWALL: csf, firewalld, iptables, ufw, or noneSYS_PHP_VERSIONS: Array of detected PHP versionsSYS_DETECTION_COMPLETE: Set to "yes" when done
-
Detection Cached
- Results cached in
.sysref.beta - Cache expires after 1 hour
- Cache prevents re-detection on subsequent runs
- Force refresh with:
bash launcher.sh --detect-only
- Results cached in
Silent Detection Issues
Why You Might Not See Detection Output
Issue: You run the toolkit, but don't see what was detected.
Cause: Detection output only shows when cache needs rebuilding (first run or after 1 hour).
Solution: Use diagnostic tools:
# See what WAS detected (even if cache is fresh)
bash launcher.sh --detect-only
# Run full diagnostic
bash test-detection.sh
Debugging Tips
Enable Verbose Output
Run diagnostic with verbose flag:
bash test-detection.sh verbose
Shows:
- Exact file paths where services found
- Version command outputs
- All detection attempts
Check Individual Services
Test command availability:
bash -c 'source lib/common-functions.sh; command_exists httpd && echo "httpd found" || echo "httpd NOT found"'
Manual Detection Testing
# Load detection library
source lib/system-detect.sh
# Run individual detections
detect_control_panel
detect_os
detect_web_server
detect_database
detect_firewall
# Check results
echo "Web Server: $SYS_WEB_SERVER"
echo "Database: $SYS_DB_TYPE"
echo "Firewall: $SYS_FIREWALL"
Common Issues on Specific OSes
AlmaLinux / Rocky Linux
Apache Binary Name:
- Uses
httpd(notapache2) - Toolkit checks for BOTH, so should work
- Verify:
which httpd
MySQL/MariaDB:
- Usually comes pre-installed
- Check:
rpm -qa | grep -i mariadb
File Paths:
- Logs:
/var/log/apache2/domlogs(cPanel) or/var/log/httpd/ - Apache config:
/etc/httpd/conf/
Ubuntu / Debian
Apache Binary Name:
- Uses
apache2(nothttpd) - Toolkit checks for BOTH, so should work
- Verify:
which apache2
MySQL/MariaDB:
- Usually comes pre-installed
- Check:
dpkg -l | grep -i mysql
File Paths:
- Logs:
/var/log/apache2/ - MySQL socket:
/var/run/mysqld/mysqld.sock(not/var/lib/mysql/mysql.sock)
Advanced: Clear Cache and Force Re-detection
If detection seems stuck with old values:
# Method 1: Use diagnostic tool (forces fresh detection)
bash launcher.sh --detect-only
# Method 2: Manually clear cache and run launcher
rm -f .sysref.beta .sysref.beta.timestamp
bash launcher.sh
Report a Detection Issue
If detection still fails after trying these steps:
-
Run full diagnostic:
bash test-detection.sh verbose > /tmp/detection-report.txt 2>&1 cat /tmp/detection-report.txt -
Include output showing:
- Which services exist but aren't detected
- What commands work manually but fail in detection
- Your OS type and version
Summary
| Command | When to Use |
|---|---|
bash launcher.sh --detect-only |
Quick check of detected config |
bash test-detection.sh |
Full diagnostic with step-by-step testing |
bash test-detection.sh verbose |
Detailed diagnostic with paths and outputs |
rm -f .sysref.beta*; bash launcher.sh |
Force fresh detection and rebuild cache |
Last Updated: 2026-03-20 Tested On: AlmaLinux 9.7, CentOS 9, Ubuntu 22.04