Multi-site hosting is mostly about clean boundaries: one vhost per site, separate docroots, and consistent PHP routing. This guide outlines what “good” looks like and the common gotchas so one site doesn’t drag down the rest.
What “good” looks like
- One vhost per site
- Separate docroots
- Predictable ownership and permissions
- Consistent PHP-FPM routing
- Per-site access and error logs
Gotchas
- One bad vhost can break reloads for the whole server
- Inconsistent permissions cause weird upload and update failures
FAQ
Should each site use its own PHP-FPM pool?
It’s not required, but per-site PHP-FPM pools improve isolation and make it easier to run different PHP versions or limit blast radius when one site misbehaves.
What if Apache won’t reload after I add a vhost?
Run sudo apachectl configtest and fix any syntax or duplicate ServerName issues. See fixing Apache restart failures for a full flow.
Related
- Apache + PHP-FPM stability basics — wiring and health checks
- Cloudflare + WordPress origin basics — when Cloudflare fronts multi-site
- Using PHP-FPM pools per WordPress site — per-site isolation