# GAPS FOUND - Variables I Missed or Got Wrong **Date**: 2026-03-20 **Status**: Issues identified that require variable additions --- ## ISSUE #1: InterWorx User Home Base Path **What I Created**: ```bash SYS_USER_HOME_BASE="/chroot/home" # InterWorx ``` **What Documentation Shows**: ```bash # InterWorx uses CHROOT jails, not standard /home/ /chroot/home/ACCOUNT_NAME/ # Account base (chroot-jailed) /chroot/home/ACCOUNT_NAME/domains/ # Per-domain structure /chroot/home/ACCOUNT_NAME/domains/DOMAIN.com/html/ # Docroot /chroot/home/ACCOUNT_NAME/domains/DOMAIN.com/logs/ # Logs ``` **PROBLEM**: My variables don't account for the DOMAIN-SPECIFIC structure within InterWorx accounts! **Missing Variables**: ```bash # InterWorx domain-specific paths SYS_INTERWORX_DOMAIN_HTML # Path to domain content (html subdirectory) SYS_INTERWORX_DOMAIN_LOGS # Path to domain logs SYS_INTERWORX_DOMAINS_BASE # /chroot/home/ACCOUNT/domains/ ``` --- ## ISSUE #2: cPanel PHP Version File Storage - INCOMPLETE **What I Created**: ```bash # In lib/service-info.sh, I set: export SYS_DB_CLI_COMMAND="/usr/bin/mysql" ``` **What Documentation ACTUALLY Shows**: ```bash # cPanel stores PHP in THREE different places for different purposes: # 1. THE BINARIES (what I partly got): /opt/cpanel/ea-php74/root/usr/bin/php # PHP 7.4 binary /opt/cpanel/ea-php81/root/usr/bin/php # PHP 8.1 binary /opt/cpanel/ea-phpXX/root/usr/bin/php-cgi # PHP CGI version # 2. THE CONFIG FILES (what I partially got): /opt/cpanel/ea-phpXX/root/etc/php.ini # Per-version php.ini /opt/cpanel/ea-phpXX/root/etc/php-fpm.conf # PHP-FPM config /opt/cpanel/ea-phpXX/root/etc/php-fpm.d/ # PHP-FPM per-domain configs # 3. VERSION DETECTION (what I MISSED): /var/cpanel/userdata/USERNAME/DOMAIN.cache # DOMAIN stores php_version=74 /etc/trueuserdomains # Maps domains to users ``` **PROBLEM**: My variables don't include the per-version configuration paths! **Missing Variables**: ```bash SYS_CPANEL_EAPHP_BASE # /opt/cpanel/ SYS_CPANEL_EAPHP_BINARY_PATTERN # /opt/cpanel/ea-phpXX/root/usr/bin/php SYS_CPANEL_EAPHP_CONFIG_PATTERN # /opt/cpanel/ea-phpXX/root/etc/php.ini SYS_CPANEL_EAPHP_FPM_PATTERN # /opt/cpanel/ea-phpXX/root/etc/php-fpm.conf SYS_CPANEL_DOMAIN_CACHE_DIR # /var/cpanel/userdata/ ``` --- ## ISSUE #3: Plesk PHP Versions - INCOMPLETE **What I Created**: ```bash # I didn't create ANY Plesk PHP version variables! ``` **What Documentation Shows**: ```bash # Plesk stores multiple PHP versions at: /opt/plesk/php/7.4/bin/php # PHP 7.4 /opt/plesk/php/8.0/bin/php # PHP 8.0 /opt/plesk/php/8.1/bin/php # PHP 8.1 /opt/plesk/php/8.2/bin/php # PHP 8.2 /opt/plesk/php/8.3/bin/php # PHP 8.3 # Plesk also uses PHP-FPM sockets for domain: /var/www/vhosts/system/DOMAIN/fpm/socketXX.sock ``` **PROBLEM**: I created NO Plesk-specific PHP variables! **Missing Variables**: ```bash SYS_PLESK_PHP_BASE # /opt/plesk/php/ SYS_PLESK_PHP_BINARY_PATTERN # /opt/plesk/php/X.Y/bin/php SYS_PLESK_FPM_SOCKET_DIR # /var/www/vhosts/system/DOMAIN/fpm/ ``` --- ## ISSUE #4: InterWorx PHP Versions - NOT RESEARCHED **What Documentation Shows**: ```bash # InterWorx uses SYSTEM PHP primarily: /usr/bin/php # System PHP # But MAY have alternate versions installed at: /usr/local/php*/bin/php # Alternate PHP versions (if manually installed) /usr/local/php56/bin/php # Example: PHP 5.6 /usr/local/php72/bin/php # Example: PHP 7.2 ``` **PROBLEM**: InterWorx PHP handling is different from cPanel/Plesk - uses system PHP, not panel-managed versions! **Missing Variables**: ```bash SYS_INTERWORX_PHP_SYSTEM # /usr/bin/php (default) SYS_INTERWORX_PHP_ALT_VERSIONS # /usr/local/php*/bin/php (if any) ``` --- ## ISSUE #5: InterWorx System User - WRONG! **What I Created**: ```bash SYS_INTERWORX_SYSTEM_UID = 99 # iworx user ``` **What Documentation Shows**: ```bash # InterWorx account naming is complex: # Account system user ≠ account name sometimes # First 8 characters of domain used as system user # Example: "example.com" → system user "examplec" ``` **PROBLEM**: My UID variable is for the global InterWorx system user, but InterWorx ALSO creates account-specific system users based on domain name! **Missing Variables**: ```bash SYS_INTERWORX_SYSTEM_UID # Global iworx user (99) # Account-specific users are derived from first 8 chars of domain # No variables needed, but documentation must note this complexity ``` --- ## ISSUE #6: cPanel Domain Configuration - MISSING **What I Created**: ```bash # I didn't create ANY variables for cPanel's domain configuration cache! ``` **What Documentation Shows**: ```bash # cPanel stores PHP version for EACH DOMAIN in: /var/cpanel/userdata/USERNAME/DOMAIN.cache # This file contains: php_version=74 # PHP 7.4 php_version=81 # PHP 8.1 documentroot=public_html servername=example.com ``` **PROBLEM**: No variables created for accessing domain configuration data! **Missing Variables**: ```bash SYS_CPANEL_USERDATA_DIR # /var/cpanel/userdata/ SYS_CPANEL_DOMAIN_CONFIG_PATTERN # /var/cpanel/userdata/USERNAME/DOMAIN.cache ``` --- ## ISSUE #7: Plesk Log Directory Structure - CRITICAL **What I Created**: ```bash # I partially got this in log-paths.sh, but didn't account for version differences! ``` **What Documentation CRITICALLY Shows**: ```bash # Plesk has TWO DIFFERENT log structures depending on version: # Plesk < 18.0.50 (OLD): /var/www/vhosts/system/DOMAIN/logs/access_log /var/www/vhosts/system/DOMAIN/logs/error_log # Plesk 18.0.50+ (NEW): /var/www/vhosts/DOMAIN/logs/access_log /var/www/vhosts/DOMAIN/logs/error_log ``` **PROBLEM**: My variables don't distinguish between versions! I need derivation functions to handle this! **Missing Variables/Functions**: ```bash # Need detection function: SYS_PLESK_LOG_STRUCTURE_VERSION # "old" or "new" based on Plesk version # Functions should exist: plesk_get_logdir(), plesk_is_new_log_structure() ``` --- ## ISSUE #8: cPanel Logs - INCOMPLETE **What I Created**: ```bash SYS_LOG_WEB_DOMAIN_ACCESS # Partial coverage ``` **What Documentation Shows**: ```bash # cPanel domain logs are in: /var/log/apache2/domlogs/DOMAIN # Access log /var/log/apache2/domlogs/DOMAIN-ssl_log # SSL access log /var/log/apache2/domlogs/DOMAIN-error_log # Error log (if available) # Older cPanel: /usr/local/apache/domlogs/DOMAIN # Alternate location ``` **PROBLEM**: My variables don't account for multiple possible locations! **Missing Variables**: ```bash SYS_CPANEL_DOMLOGS_BASE # /var/log/apache2/domlogs/ OR /usr/local/apache/domlogs/ SYS_CPANEL_DOMLOGS_PATTERN # Template for accessing domain logs ``` --- ## ISSUE #9: InterWorx Domain Logs - MISSING ENTIRELY **What Documentation Shows**: ```bash # InterWorx stores logs in: /chroot/home/ACCOUNT/domains/DOMAIN.com/logs/access.log /chroot/home/ACCOUNT/domains/DOMAIN.com/logs/error.log # ALSO available at (older layout): /chroot/home/ACCOUNT/var/DOMAIN.com/logs/access.log /chroot/home/ACCOUNT/var/DOMAIN.com/logs/error.log ``` **PROBLEM**: I have NO InterWorx-specific log variables! **Missing Variables**: ```bash SYS_INTERWORX_DOMAIN_LOGS_DIR # /chroot/home/ACCOUNT/domains/DOMAIN/logs/ SYS_INTERWORX_VAR_LOGS_DIR # /chroot/home/ACCOUNT/var/DOMAIN/logs/ ``` --- ## ISSUE #10: Control Panel Domain Mappings - NOT CREATED **What Documentation Shows**: ```bash # cPanel domain mappings in: /etc/trueuserdomains # Primary domain:user mappings /etc/userdatadomains # Addon domain mappings /etc/retentiondomains # Parked domain mappings # Plesk domain list: plesk bin domain list # CLI command # InterWorx domain list: /home/interworx/bin/listaccounts.pex # Account listing ``` **PROBLEM**: No variables created for domain mapping files! **Missing Variables**: ```bash SYS_CPANEL_TRUEUSERDOMAINS # /etc/trueuserdomains SYS_CPANEL_USERDATADOMAINS # /etc/userdatadomains SYS_CPANEL_RETENTIONDOMAINS # /etc/retentiondomains ``` --- ## SUMMARY OF GAPS ### Critical Missing Variables: 25+ | Category | Count | Problem | |----------|-------|---------| | InterWorx paths | 8 | Chroot structure not fully mapped | | PHP version storage | 10 | Panel-specific locations missing | | Domain configuration | 4 | No access to config cache files | | Log directory variations | 6 | Version/structure differences not handled | | Domain mappings | 3 | Missing file-based mappings | | **TOTAL MISSING** | **31** | **These need to be added** | ### High Priority Fixes Needed 1. **InterWorx domain-specific paths** - The `/chroot/home/ACCOUNT/domains/` structure is completely unaccounted for 2. **Plesk version detection** - OLD vs NEW log structure requires runtime detection 3. **PHP version storage locations** - cPanel and Plesk have different locations 4. **Domain configuration access** - cPanel's `.cache` files, Plesk's database, InterWorx's structure 5. **Log directory variations** - Different panels store logs differently --- ## What This Means **My original fact-check was INCOMPLETE because:** 1. I verified variables EXIST, but didn't verify they were COMPLETE 2. I didn't check for CONTROL PANEL SPECIFIC paths within user folders 3. I didn't account for PANEL-SPECIFIC PHP storage locations 4. I didn't create variables for DOMAIN CONFIGURATION access 5. I didn't create variables for LOG DIRECTORY VARIATIONS by version/panel 6. I didn't fully map InterWorx's chroot+domain structure **The variables I created are CORRECT but INCOMPLETE.** **Next Step**: Add these 31+ missing variables to properly handle all control panel and OS combinations.