diff --git a/clients/ezfastautoglass/session-logs/2026-06/2026-06-22-mike-product-page-wsod-wprocket-removal.md b/clients/ezfastautoglass/session-logs/2026-06/2026-06-22-mike-product-page-wsod-wprocket-removal.md new file mode 100644 index 00000000..80f5a078 --- /dev/null +++ b/clients/ezfastautoglass/session-logs/2026-06/2026-06-22-mike-product-page-wsod-wprocket-removal.md @@ -0,0 +1,89 @@ +# ezfastautoglass.com — product-page white screen fixed (removed WP Rocket / AccelerateWP) + +## User +- **User:** Mike Swanson (mike) +- **Machine:** GURU-5070 +- **Role:** admin + +## Session Summary + +ezfastautoglass.com (WooCommerce store on the IX cPanel server) had a **white screen on product +pages**. Mike suspected caching. Investigation found the site's optimization plugin `clsop` — +which is **CloudLinux AccelerateWP, the WP Rocket engine rebranded** (not a separately-named +"wp-rocket" plugin). Its **Remove-Unused-CSS / critical-CSS / delay-JS** features (the `rocket_saas_*` +SaaS jobs seen in the error_log) strip/defer CSS+JS the product template needs — the classic cause +of a WooCommerce product-page WSOD. The page cache itself was not the problem. + +Disabling `clsop` immediately fixed it: a product page went from white to HTTP 200 with full +content. Mike confirmed Woo's default caching is fine and that WP Rocket isn't needed, so the call +was to remove it entirely rather than reconfigure it. Did a **clean removal** of every reference: +the `active_plugins` entry, the rocket/clsop options + transients, 5 orphaned `rocket_*` cron events +(which had been spamming the error_log with "could not be saved"/"invalid_schedule" errors), the +plugin directory, `wp-rocket-config/`, the `advanced-cache.php` dropin, `wp-content/cache`, and the +`WP_CACHE` define in wp-config.php. Verified clean (0 rocket options, 0 rocket cron, no files) and +the product page + homepage both return 200. The site now runs on WordPress/WooCommerce default +behavior with no third-party page cache. + +## Key Decisions +- **Removed AccelerateWP/clsop entirely** rather than reconfiguring — Mike confirmed Woo default + caching is fine and the optimization layer (specifically RUCSS) was the WSOD cause. Keeping it + would mean re-enabling page cache with RUCSS/critical-CSS/delay-JS OFF; not needed for this store. +- **Used a standalone `wp-cli.phar`** for the DB-side cleanup (active_plugins, options, cron) because + the cPanel WP-Toolkit `wp` wrapper hard-blocks scripted use ("Only CLI access"). +- **Backed up before removal** (plugin dir + config tarball + settings JSON + wp-config backup) so + AccelerateWP can be re-deployed later if perf caching is wanted. + +## Problems Encountered +- **cPanel WP-Toolkit `wp` wrapper blocks CLI** — `/usr/local/bin/wp` (WP-Toolkit's wpt-wp-cli) + prints "Only CLI access" for any non-WPT invocation, even with `ssh -tt`. Workaround: download the + genuine `wp-cli.phar` and run it directly. +- **Wrong PHP SAPI** — running wp-cli via `sudo -u php` used the **cgi-fcgi** SAPI; wp-cli + refuses ("only works from the cli SAPI"). Fix: invoke the cPanel **CLI** php explicitly at + `/opt/cpanel/ea-php81/root/usr/bin/php`. +- **Orphaned cron after a partial disable** — initially just renamed the plugin dir + set WP_CACHE + false; that left `rocket_*` cron events + options + the active_plugins entry behind, which kept + erroring in the log. Lesson: removing a WP-Rocket-class plugin means clearing its DB cron/options/ + active_plugins, not just files. + +## Configuration Changes (on IX, /home/ezfastautoglass/public_html) +- Removed: plugin `clsop` (dir), `wp-content/wp-rocket-config/`, `wp-content/advanced-cache.php`, + `wp-content/cache/`, the `WP_CACHE` define in wp-config.php. +- DB (via wp-cli): removed `clsop/clsop.php` from `active_plugins`; deleted options + `wp_rocket_settings`, `wpr_rocket_cache_version`, `wp_rocket_last_base_url`, + `clsop_last_server_software` + rocket transients; deleted 5 `rocket_*` cron events. +- Backups left on server in `/home/ezfastautoglass/`: `clsop-removal-backup-20260622-131519.tgz`, + `clsop-rocket-settings-.json`, and `public_html/wp-config.php.acg-bak-20260622-130601`. + +## Credentials & Secrets +- No new credentials. IX root access via SSH key from GURU-5070 (`ssh root@172.16.3.10`); fallback + + WHM token in vault `infrastructure/ix-server.sops.yaml`. No client secrets touched. + +## Infrastructure & Servers +- Host: IX cPanel server, `172.16.3.10` (ext `72.194.62.5`), Apache 2.4.68 (cPanel), PHP 8.1.34. +- Account: cPanel user `ezfastautoglass`, docroot `/home/ezfastautoglass/public_html`. WordPress 7.0 + + WooCommerce. Site PHP memory_limit 256M. No LiteSpeed, no Cloudflare proxy on this domain. +- The site retains its `.htaccess` browser-cache headers (far-future `max-age`/`mod_expires` on + static assets; HTML is `no-cache`) — left as-is (normal, not the WSOD cause). + +## Commands & Outputs +- Real wp-cli (bypass WPT wrapper): + `sudo -u ezfastautoglass -- /opt/cpanel/ea-php81/root/usr/bin/php /home/ezfastautoglass/wp-cli.phar --path= --skip-plugins --skip-themes ` +- Remove from active_plugins without loading the plugin: + `wp eval 'require_once ABSPATH."wp-admin/includes/plugin.php"; deactivate_plugins("clsop/clsop.php", true);'` +- Verify: `wp option list --search='*rocket*' --format=count` → 0; `wp cron event list | grep rocket` → none. +- Health: product page + homepage both `http=200` post-removal. + +## Pending / Incomplete Tasks +- **Monitor** product pages over the next day (cache fully gone; confirm no WSOD recurrence and that + the error_log stays clean of `rocket_*` entries). +- **Optional:** if page-cache performance is wanted later, re-deploy AccelerateWP via cPanel with + **Remove-Unused-CSS + Critical-CSS + Delay-JS OFF** (those three break product pages; the page + cache alone is safe). Backups on the server make this reversible. +- Delete the server-side backup tarball/json once the fix is confirmed good. + +## Reference Information +- Domain → account: `ezfastautoglass.com` → cPanel user `ezfastautoglass` (1.7 G). IX article: + [[systems/ix-server]]. +- Root cause class: WP Rocket / AccelerateWP **Remove Unused CSS** strips CSS the WooCommerce + product template needs → white screen. General gotcha for any RUCSS-enabled WP-Rocket/AccelerateWP + store.