# 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.

