New slim per-site PHP backend that runs 'lsphp -b 0.0.0.0:9000' (detached LSAPI) and nothing else — the LiteSpeed analogue of cac-fpm, sitting behind a shared OpenLiteSpeed container. Built on the same litespeedtech prebuilt base as cac-litespeed so the lsphp runtime/extensions are identical. - Dockerfile.lsphp: base + lsphpNN-ldap parity, reuses shared lsphp-overrides.ini, exposes only :9000, no webserver started (guaranteed by entrypoint, not by stripping OLS binaries). - entrypoint-lsphp.sh: same uid/user contract + /home/$user/logs layout + ini drop-in mechanism as entrypoint-litespeed.sh; sizes PHP_LSAPI_CHILDREN from container memory (detect-memory-lsphp.sh) with panel override precedence; execs lsphp -b as the per-site user via setpriv (PID 1). - detect-memory-lsphp.sh: LSAPI_CHILDREN sizing, no OLS daemon reserve. - healthcheck-lsphp.sh: TCP :9000 + lsphp-alive (LSAPI isn't FastCGI). - CI: Build-LSPHP-Images job, php81-85 matrix, OLS 1.8.4, cac-lsphp:phpNN. Verified locally: builds php83+php85; sidecar runs lsphp as the per-site user (uid 61045) as PID 1, healthcheck green, and a real shared OLS in front serves PHP over LSAPI (HTTP 200, SAPI=litespeed) with identical docroot path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
673 B
Bash
18 lines
673 B
Bash
#!/usr/bin/env bash
|
|
## healthcheck-lsphp.sh — liveness for the detached-lsphp sidecar.
|
|
##
|
|
## LSAPI is not FastCGI, so the cac-fpm `cgi-fcgi ... | grep pong` ping doesn't
|
|
## apply here. Minimum viable check (spec §5.1 fallback): the LSAPI listener is
|
|
## accepting TCP connections on :9000 AND at least one lsphp process is alive.
|
|
## A bound-but-wedged listener with no lsphp would fail the pgrep; a crashed
|
|
## listener fails the connect.
|
|
|
|
PORT="${LSPHP_HEALTH_PORT:-9000}"
|
|
|
|
# bash /dev/tcp connect test (bash is present on the litespeedtech base).
|
|
exec 3<>"/dev/tcp/127.0.0.1/${PORT}" 2>/dev/null || exit 1
|
|
exec 3>&- 3<&-
|
|
|
|
pgrep -x lsphp >/dev/null 2>&1 || exit 1
|
|
exit 0
|