Symfony VPS HostingProduction-Ready PHP-FPM and Workers
Host Symfony the way its documentation describes for production: NGINX pointing at /public, PHP-FPM with OPcache, and Messenger consumers kept running by Supervisor. We install the stack on a hardened KVM VPS; you deploy with Composer and the console.
Full root & SSH NVMe storage Daily backups Anti-DDoS 99.9% uptime SLA 11 locations
-
Root and SSH access
Composer, bin/console and Supervisor without limits.
-
Reserved vCores and RAM
Guaranteed resources for PHP-FPM and workers.
-
NVMe storage
Fast cache warm-up and Composer installs.
-
Daily backups
Automatic backup of the previous 24 hours.
Why Symfony Runs Best on a VPS
A production Symfony app needs a writable cache, a tuned OPcache and long-running Messenger workers. A VPS gives you all three.
-
Messenger workers that stay up
Supervisor runs messenger:consume with time and memory limits and restarts consumers after each deploy.
-
OPcache preloading
Symfony generates a preload file; on your own server you can enable opcache.preload for faster requests.
-
The PHP version Symfony needs
Symfony 7 requires PHP 8.2 or newer; install exactly the version and extensions your app expects.
-
Database and cache on one server
PostgreSQL or MySQL plus Redis for cache pools, sessions and locks, all over localhost.
A Typical Symfony Production Stack
NGINX in front, PHP-FPM running Symfony, and Messenger consumers beside it.
Request from a browser or app (HTTPS)
-
Web server
NGINX
Document root set to /public; every request goes through index.php.
-
PHP runtime
PHP-FPM + OPcache
Workers sized to your plan, with preloading enabled.
-
Application
Symfony
APP_ENV=prod, with the cache warmed at deploy time.
-
Background
Messenger consumers
Run under Supervisor with --time-limit and --memory-limit so workers recycle.
-
Data
PostgreSQL or MySQL + Redis
Doctrine for your entities; Redis for cache pools, sessions and locks.
Worth knowing
- composer dump-env prod compiles .env files into .env.local.php for a faster boot.
- Run messenger:stop-workers after a deploy so consumers load the new code.
- Only var/ needs to be writable by the PHP-FPM user; keep the rest read-only.
- Use the Symfony secrets vault for production credentials.
What You Can Build and Run
-
APIs with API Platform
REST and GraphQL APIs built on Symfony and Doctrine.
-
Business applications
ERPs, CRMs and back offices with complex domain logic.
-
Sylius stores
E-commerce on Sylius, which is built on Symfony.
-
Content platforms
Sulu, Bolt or a custom CMS on Symfony.
-
Async processing
Messenger handlers for email, exports and integrations.
-
Admin panels
EasyAdmin dashboards for internal teams.
VPS Plans for Symfony
VPS-1 runs a small Symfony app with its database. Production apps with Messenger workers and Redis usually start on VPS-2.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Which Plan for Your Symfony App
Count PHP-FPM workers, Messenger consumers and the database; they all share the server.
| Workload | Start with | Why |
|---|---|---|
| Small app or staging | VPS-1 2 vCores · 4 GB RAM | PHP-FPM, a database and one consumer. |
| Production app with workers | VPS-2 4 vCores · 8 GB RAM | Room for several consumers and Redis. |
| API Platform or Sylius under load | VPS-3 6 vCores · 12 GB RAM | More vCores for API and checkout traffic. |
| Several apps or a large database | VPS-4 8 vCores · 24 GB RAM | 24 GB RAM and 200 GB NVMe. |
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Symfony on Shared Hosting or a VPS?
Shared hosting can serve Symfony pages; production features need a server you control.
| Feature | Shared hosting | Symfony VPS |
|---|---|---|
| Messenger consumers | No long-running processes | Managed by Supervisor |
| OPcache preloading | Not configurable | Yes |
| PHP version and extensions | The host's selection | Your choice |
| Deploys | File upload or limited SSH | Composer and bin/console over SSH |
| Redis | Rarely available | Installed on request |
| Server administration | Done by the host | Yours, after our free setup |
| Explore Shared hosting | See Plans |
Your First Symfony Deploy
The production steps from Symfony's deployment guide, as commands.
-
Install dependencies
Production packages with an optimised autoloader.
-
Compile environment variables
Faster than parsing .env files on every request.
-
Migrate and warm the cache
Database first, then a fresh production cache.
-
Restart workers
Supervisor starts consumers again with the new code.
# 1. Install dependencies
cd /var/www/app && git pull
composer install --no-dev --optimize-autoloader
# 2. Compile environment variables
composer dump-env prod
# 3. Migrate and warm the cache
php bin/console doctrine:migrations:migrate --no-interaction
APP_ENV=prod php bin/console cache:clear
# 4. Restart workers
php bin/console messenger:stop-workers
Example commands; adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do (or ask us for a quote).
Installed and Secured Before You Log In
The VPS is unmanaged: after handover the server is yours to run. Before that, our engineers do the first setup once, free, so you start from a hardened server with Symfony in place.
-
Choose a plan and location
Pick the resources you need and the datacentre closest to your users.
-
Tell us your Symfony setup
Versions, database and domain: at order or right after.
-
We install and secure it
Server hardened, Symfony installed and tested, HTTPS on your domain.
-
You take over with root
SSH access to a working server, ready for your code and data.
Your Symfony stack
- NGINX configured for Symfony's public directory
- PHP-FPM with OPcache and the extensions Symfony needs
- Composer and the Symfony CLI
- PostgreSQL or MySQL with a database and user for your app
- Supervisor for Messenger consumers; Redis on request
Yours to run after handover
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Not included in the free setup, but we can quote for it. No control panel by default: CloudPanel, HestiaCP or Virtualmin on request at no cost; cPanel and Plesk need their own licence.
Platform Specs and Locations
The same KVM platform on every plan; only the CPU, RAM, storage and port speed change.
| Virtualisation | KVM with reserved vCores and RAM |
|---|---|
| Storage | NVMe SSD on every plan |
| Network | Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan |
| Operating systems | Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD |
| Access | Full root over SSH, key-based login |
| Backups | Automatic daily backup of the previous 24 hours; snapshots and longer retention on request |
| Protection | Always-on anti-DDoS mitigation |
| Availability | 99.9% uptime SLA |
Secured before we hand it over
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Who a Symfony VPS Suits
-
Symfony developers
You deploy with Composer and the console and want a predictable server.
-
Agencies building on Symfony
Client apps, Sylius stores and Sulu sites on one server.
-
Teams outgrowing shared hosting
Apps that need workers, preloading and Redis.
Security and Performance for Symfony
Security
- Never deploy with APP_ENV=dev or the web profiler enabled.
- Keep secrets in the Symfony vault or environment variables, never in the repository.
- Point the web root at /public only.
- Run composer audit and stay on a maintained Symfony release.
Performance
- Enable OPcache with preloading from config/preload.php.
- Use composer dump-env prod and an optimised autoloader.
- Store cache pools and sessions in Redis.
- Recycle Messenger consumers with --time-limit and --memory-limit.
Questions Before You Deploy
Not covered here? Ask an engineer before you order.
Run Symfony on Your Own Server
Choose a plan, tell us your PHP version and database, and start from NGINX, PHP-FPM and Supervisor ready for production.