Files
cloud-apache-container/configs/litespeed/vhconf.tpl
jknapp 55c28a0c11 Add cac-litespeed image family (OpenLiteSpeed, native LSAPI)
New paid-tier per-customer image built on litespeedtech/openlitespeed:1.8.4-lsphpNN.
Matrix: 8.1-8.5. Native LSAPI suexec to customer uid, server-level LSCache,
all WP/WooCommerce extensions (memcached, redis, imagick, mbstring, etc.) baked in.

Files:
- Dockerfile.litespeed (FROM prebuilt LiteSpeed base, layers wp-cli/composer/mariadb)
- configs/litespeed/{httpd_config,site-template,lsphp-overrides}.tpl
- scripts/{entrypoint,create-vhost,detect-memory}-litespeed.sh + install-lscache-wp.sh

CI: new Build-LiteSpeed-Images matrix job. OLS_VERSION pinned to 1.8.4 (only
release with prebuilt images for all 5 PHP versions on Docker Hub).

Spec: whp/docs/superpowers/specs/2026-06-01-cac-litespeed-design.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 07:32:47 -07:00

78 lines
2.1 KiB
Smarty

## Per-vhost config — rendered at container start.
## Templated vars (envsubst allow-list): $user $domain
## Anything that looks like $DOC_ROOT, $VH_ROOT, $HTTP_HOST etc. is an OLS
## runtime macro — intentionally NOT in the envsubst allow-list so it
## passes through unchanged for OLS to expand at request time.
docRoot /home/${user}/public_html
enableGzip 1
enableBr 1
errorlog /home/${user}/logs/litespeed/error.log {
useServer 0
logLevel WARN
rollingSize 10M
keepDays 14
compressArchive 1
}
accesslog /home/${user}/logs/litespeed/access.log {
useServer 0
rollingSize 10M
keepDays 7
compressArchive 1
}
index {
useServer 0
indexFiles index.php, index.html
autoIndex 0
}
scripthandler {
add lsapi:lsphp php
}
## LSCache plugin owns Cache-Control / Expires entirely — keep server-level
## expires off so we don't double-emit headers.
expires {
enableExpires 0
}
accessControl {
allow *
}
context / {
## $DOC_ROOT is an OLS macro (not a shell var). Don't add it to the
## envsubst allow-list in create-vhost-litespeed.sh or it'll expand to
## empty and break docroot resolution.
location $DOC_ROOT/
allowBrowse 1
rewrite {
enable 1
inherit 0
autoLoadHtaccess 1
RewriteFile .htaccess
}
addDefaultCharset off
}
rewrite {
enable 1
autoLoadHtaccess 1
logLevel 0
}
## Per-vhost LSCache storage. Server module cache{} block enables the engine;
## these lines tell the vhost WHERE to cache. The LSCWP plugin flips the
## cache on/off at request time via X-LiteSpeed-Cache-Control headers.
module cache {
storagePath /home/${user}/lscache
checkPrivateCache 1
checkPublicCache 1
enableCache 0
enablePrivateCache 0
}