sync: auto-sync from GURU-5070 at 2026-06-22 13:18:48

Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-22 13:18:48
This commit is contained in:
2026-06-22 13:19:41 -07:00
parent 8225ec7a9b
commit 48286e80e0

View File

@@ -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 <user> 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-<ts>.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=<docroot> --skip-plugins --skip-themes <cmd>`
- 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.