Fix 5 critical bugs in PHP optimization scripts

CRITICAL FIXES:

1. php-detector.sh - Fix detect_php_version_for_domain parameter order
   - Changed from detect_php_version_for_domain(domain, username)
   - To: detect_php_version_for_domain(username, domain)
   - Updated all 3 call sites to pass username first
   - Fixes: Cannot detect PHP versions for domains

2. php-analyzer.sh - Fix memory calculation bug (line 599)
   - Changed total_mb from field 2 to field 3
   - Was: total_mb=$(echo "$memory_stats" | cut -d'|' -f2)
   - Now: total_mb=$(echo "$memory_stats" | cut -d'|' -f3)
   - Fixes: analyze_domain_php() showing wrong memory usage

3. php-analyzer.sh - Fix variable name collision
   - Renamed second error_count to memory_error_count
   - Prevents overwriting max_children error count
   - Fixes: Memory error detection not working

4. php-analyzer.sh - Fix calculate_server_memory_capacity
   - Changed from get_fpm_memory_usage(pool_name) [wrong function]
   - To: calculate_memory_per_process(username) [correct]
   - Fixed stderr output to stdout for details
   - Fixed indentation causing logic errors
   - Fixes: Server capacity check returning garbage data

5. php-detector.sh - Fix find_fpm_pool_config search order
   - Changed to search username.conf FIRST (cPanel standard)
   - Was searching domain.conf first (doesn't exist in cPanel)
   - cPanel stores pools as /opt/cpanel/ea-phpXX/root/etc/php-fpm.d/USERNAME.conf
   - Fixes: Cannot find FPM pool configurations

6. php-config-manager.sh - Add missing dependency source
   - Added: source php-detector.sh at top of file
   - Was calling find_fpm_pool_config() with no definition
   - Fixes: All backup/restore functions failing

IMPACT:
Before: PHP optimizer completely non-functional
- Could not detect PHP versions
- Could not find FPM pool configs
- Could not backup/restore configs
- Showed wrong memory calculations
- Server capacity check broken

After: All core functionality now works
- PHP version detection working
- FPM pool discovery working
- Backup/restore functional
- Memory calculations accurate
- Capacity checks return valid data
This commit is contained in:
cschantz
2025-12-11 21:19:26 -05:00
parent ca98bfc134
commit d526dece43
4 changed files with 34 additions and 32 deletions
+2 -2
View File
@@ -111,7 +111,7 @@ select_domain() {
for domain in "${domains[@]}"; do
local username="${domain_to_user[$domain]}"
local php_version
php_version=$(detect_php_version_for_domain "$domain" 2>/dev/null || echo "unknown")
php_version=$(detect_php_version_for_domain "$username" "$domain" 2>/dev/null || echo "unknown")
printf " ${GREEN}%-3d${NC}) %-40s ${CYAN}[${username}]${NC} ${YELLOW}(${php_version})${NC}\n" "$index" "$domain"
index=$((index + 1))
@@ -533,7 +533,7 @@ optimize_domain() {
if [[ "$restart_choice" =~ ^[Yy]$ ]]; then
# Detect PHP version
local php_version
php_version=$(detect_php_version_for_domain "$domain")
php_version=$(detect_php_version_for_domain "$username" "$domain")
cecho "${CYAN}Restarting PHP-FPM ($php_version)...${NC}"