mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
The role could not deliver anything. The markoshust nginx image ships a default vhost built for a different topology: fastcgi points at unix:/sock/phpfpm.sock, port 8000 only returns 301 to https, the real server sits on 8443 with a self-signed cert, and it references an upstream host 'phpfpm' that does not exist here - so nginx aborted at config load with 'host not found in upstream' and the container never started. php-fpm listened on that same unix socket, because its /usr/local/etc/php-fpm.conf carries no include line and php-fpm.d/*.conf is therefore dead config. Both are now replaced through type: config mounts. The role never had any - that absence is why every template it previously rendered was inert. The vhost stays minimal and includes Magento's own nginx.conf, copied from nginx.conf.sample by the bootstrap. Its location blocks carry the .php whitelist, the /static/version rewrites and the /media to get.php fallback that a hand-written vhost has to reimplement - the previous attempt did not, and would have executed every .php under pub/. PHP moves from 8.5 to 8.4: Magento 2.4.8 requires ~8.2.0||~8.3.0||~8.4.0 and the bootstrap passes no platform-requirement override, so composer create-project failed before nginx ever mattered. nginx waits for the php socket before starting, for the reason given in the erpnext frontend commit: the wildcard search domain turns a DNS miss into a routable wrong answer, and nginx pins upstreams at config load. Also: the oauth2 origin port named 8080, where nothing listens, and the healthcheck proved only that some listener existed - it stayed green on a redirect loop and on 502. Measured in a rebuild of the role topology against Magento's real nginx.conf.sample: HTTP 200 on / and /index.php, healthy healthcheck, and the counter-test - without the gate and with php down, nginx exits 1. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
18 lines
433 B
Django/Jinja
18 lines
433 B
Django/Jinja
{# Exception: this file has no include= line, so php-fpm.d/*.conf is never
|
|
read — an override dropped there is silently inert. #}
|
|
[global]
|
|
error_log = /proc/self/fd/2
|
|
daemonize = no
|
|
|
|
[www]
|
|
access.log = /proc/self/fd/2
|
|
listen = 0.0.0.0:{{ MAGENTO_PHP_PORT }}
|
|
pm = dynamic
|
|
pm.max_children = 10
|
|
pm.start_servers = 4
|
|
pm.min_spare_servers = 2
|
|
pm.max_spare_servers = 6
|
|
clear_env = no
|
|
catch_workers_output = yes
|
|
process.dumpable = yes
|