5f62f4325e
DOCUMENTATION: Comprehensive PHP config hierarchy across all platforms CRITICAL ADDITION - All Possible php.ini Locations: **Priority 1 (HIGHEST) - Per-Directory:** - .user.ini (PHP-FPM, per-directory, reloads every 5min) - .htaccess with php_value (mod_php ONLY, usually ignored) - ~/public_html/.user.ini (most common) - ~/public_html/subdirectory/.user.ini (cascading) **Priority 2 - User-Specific:** - ~/public_html/php.ini (some control panels) - ~/.php/8.2/php.ini (cPanel MultiPHP style) - ~/etc/php82/php.ini (InterWorx style) - ~/php.ini (legacy home directory) **Priority 3 - Pool-Specific:** - /opt/cpanel/ea-php82/root/etc/php.ini (cPanel EA-PHP) - /opt/cpanel/ea-php82/root/etc/php.d/*.ini (additional, alphabetical) - /opt/alt/php82/etc/php.ini (CloudLinux Alt-PHP) - /var/www/vhosts/system/domain/etc/php.ini (Plesk) - /home/user/var/domain/etc/php.ini (InterWorx) **Priority 4 (LOWEST) - System-Wide:** - /etc/php.ini (global fallback) **Coverage by Control Panel:** ✅ cPanel with EA-PHP (most common, fully mapped) ✅ CloudLinux with Alt-PHP (fully mapped) ✅ Plesk (all locations documented) ✅ InterWorx (domain-specific paths) ✅ DirectAdmin (user/domain hierarchy) ✅ No control panel (standard paths) **Universal Detection Function:** find_all_php_configs() - Scans ALL possible locations - Checks 15+ location patterns - Returns priority-ordered list - Works across all control panels - Handles version-specific paths **Effective Setting Detection:** Method 1: Query PHP directly (MOST ACCURATE!) su -s /bin/bash $user -c "php -r 'echo ini_get("setting");'" Method 2: Parse hierarchy (fallback) Priority 4 → 3 → 2 → 1 (higher overrides lower) **Key Discoveries:** - .user.ini overrides EVERYTHING (highest priority!) - .htaccess php_value only works with mod_php (NOT PHP-FPM!) - cPanel creates user configs in ~/.php/VERSION/php.ini - public_html/php.ini exists on some configurations - Multiple .ini files loaded alphabetically in php.d/ **Detection Commands:** - Find all: find / -name "php.ini" -type f - Find .user.ini: find /home -name ".user.ini" - Get effective: php -r "echo ini_get('setting');" - List loaded: php --ini This ensures optimizer finds ALL configs affecting each domain!