PHP-FPM Pools and Process Counts on 2 GB RAM
Size PHP-FPM pm.max_children on a 2 GB VPS so workers fit beside nginx and MySQL, then split pools if two apps should not share one process budget.
NetBay journal
37 practical App Deployment articles from Netbay Engineering — written for operators running Linux and Windows VPS in India.
37 articles in this topic
Size PHP-FPM pm.max_children on a 2 GB VPS so workers fit beside nginx and MySQL, then split pools if two apps should not share one process budget.
Cap the V8 old space on a 2 GB Ubuntu VPS so Node cannot starve the kernel, nginx, and the page cache before the Linux OOM killer fires first.
Know when a second process is required for Celery or a simple Redis queue so web requests stay fast while emails and reports run in the background.
Terminate TLS on nginx, send strict security headers, and hide PHP and nginx versions so scanners see a boring VPS instead of a versioned attack surface.
Compare PM2 and systemd for a single Ubuntu VPS and see why the init system you already run is the better supervisor for Node.js in production.
Set PHP file ownership so a deploy user ships code, www-data can read it, and only storage, cache, and upload directories stay group-writable on the VPS.
Decide when WhiteNoise is enough for Django static files and when nginx should serve them, so your Python app stays fast without extra moving parts.
Keep the listening socket in systemd so Node restarts do not drop the bind, and nginx clients stop seeing connection refused during deploys.
Install WordPress by hand on Ubuntu with nginx, PHP-FPM, and MariaDB: core files, wp-config, permalinks, and hardening without a one-click app marketplace.
Keep secrets out of git with .env files and 12-factor environment variables so a single Ubuntu VPS can host one Python app cleanly and safely.
Load production secrets from a root-owned env file, keep them out of git, and wire EnvironmentFile so systemd injects those values at start time.
Run Laravel on a VPS with a writable storage tree, a systemd queue worker, and cron for schedule:run so logs, jobs, and scheduled tasks survive every deploy.