mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-01-16 20:42:06 +01:00
Implement automatic detection and update of ModSecurity when upgrading to custom OpenLiteSpeed binaries. Problem: - Stock ModSecurity modules are NOT ABI-compatible with custom OLS binaries - Using stock ModSecurity with custom OLS causes server crashes (segfaults) - Custom OLS has different memory layout and function signatures - ModSecurity must be rebuilt against custom OLS headers Solution: - Detect if custom OLS binary is installed (check for PHPConfig markers) - Detect if ModSecurity is currently installed - Automatically download and install ABI-compatible ModSecurity - Verify checksums before installation - Backup existing ModSecurity before replacing Implementation: - isCustomOLSBinaryInstalled(): Detects custom OLS by scanning binary for markers - installCompatibleModSecurity(): Downloads OS-specific compatible ModSecurity - handleModSecurityCompatibility(): Orchestrates the compatibility check and update - Integrated into upgrade process after custom binary installation Binary URLs: - RHEL/AlmaLinux: https://cyberpanel.net/mod_security-compatible-rhel.so - Ubuntu/Debian: https://cyberpanel.net/mod_security-compatible-ubuntu.so Checksums: - RHEL SHA256: db580afc431fda40d46bdae2249ac74690d9175ff6d8b1843f2837d86f8d602f - Ubuntu SHA256: 115971fcd44b74bc7c7b097b9cec33ddcfb0fb07bb9b562ec9f4f0691c388a6b Safety features: - Checksum verification before installation - Automatic backup of existing ModSecurity - Graceful OLS restart with timeout handling - Non-fatal errors allow upgrade to continue This prevents server crashes for existing CyberPanel users who have ModSecurity installed when they upgrade to custom OpenLiteSpeed binaries.