To run Symfony on an Ubuntu VPS, install PHP 8.4 or newer with the extensions required by the current Symfony setup documentation, Composer, Git, and a production web server. Symfony CLI is optional: it checks requirements and makes project creation and local development easier, but its development server is not a production web server. For production, point Nginx or Apache at the project’s public/ directory and connect it to PHP-FPM.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What the finished setup looks like
A Symfony VPS deployment has three distinct layers. Ubuntu provides the operating system and process permissions. Nginx (or Apache, Caddy, or FrankenPHP) accepts HTTP requests and serves static files. PHP-FPM executes Symfony’s front controller, normally public/index.php. Symfony itself keeps generated cache and logs under var/.
As an Amazon Associate I earn from qualifying purchases.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThe document root must be the project’s public/ directory, not the repository root. That directory is intended to contain all public and static files, including images, stylesheets, JavaScript, and the front controller. Keeping the rest of the source tree outside the document root prevents configuration files, vendor code, and application secrets from being requested as web resources.
Prerequisites on Ubuntu
| Component | What you need | How to verify it |
|---|---|---|
| PHP | PHP 8.4 or higher, as required by the current Symfony setup documentation | php -v |
| PHP extensions | Every core extension listed for your Symfony version | php -m, followed by Symfony’s requirement check |
| Composer | A working Composer installation for dependency resolution | composer --version |
| Source tools | Git for a project repository and unzip for package archives | git --version and unzip -v |
| Web server | Nginx or Apache for production; Caddy or FrankenPHP are alternatives | Check the service status and listening ports |
| PHP-FPM | Required when Nginx or Apache is used to execute PHP | Check the PHP-FPM service and its socket or TCP listener |
Ubuntu package names and PHP repositories differ between Ubuntu releases. Install a supported PHP 8.4 build and the extensions named by the Symfony setup page rather than assuming that an older distribution package is sufficient. If Symfony CLI is installed, run symfony check:requirements; it reports missing PHP features and extensions before you spend time debugging an application.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Prepare the VPS
1. Install and verify the base software
Use Ubuntu’s package management and your chosen PHP source to install PHP 8.4 or newer, the required extensions, Composer, Git, unzip, Nginx (or another production server), and PHP-FPM. Enable the services you intend to run and make sure the firewall permits only the ports you actually use, normally SSH plus HTTP and HTTPS.
Before creating a project, confirm the command-line PHP and the PHP-FPM version are compatible. A common failure is having PHP 8.4 in the shell while Nginx sends requests to an older FPM pool. Inspect both php -v and the FPM service or socket name, then use the same supported major and minor version in the web-server configuration.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches2. Install Symfony CLI (optional)
Symfony CLI is a free, open-source terminal tool. On Ubuntu, follow Symfony’s documented Cloudsmith APT repository setup script, then install the package:
sudo apt install symfony-cli
The official CLI documentation also describes an installer script and standalone binary. The APT package is convenient for a VPS because normal package updates keep the command available system-wide. Confirm installation with:
symfony -v
CLI is not required to serve an existing Symfony application. Composer, PHP, and a correctly configured production web server are the essential runtime pieces.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
Create a new Symfony application
Full web application
For a conventional website with Symfony’s web-oriented dependencies, create the project with:
Free tools Windows power users keep installed
One-click scans. No signup required.
symfony new --webapp my_project
Change into the new directory before running application commands:
cd my_project
The --webapp option selects the standard web-application setup. It is the practical starting point when the project will render pages, process forms, use sessions, or expose a browser-facing interface.
Minimal, API, microservice, or console application
For a smaller dependency set, use:
symfony new my_project
This is appropriate for an API, microservice, command-line application, or another project where you want to choose components explicitly. The CLI supports version selection with --version, including an LTS choice documented by Symfony. Select a version deliberately when an existing application, PHP release, or support policy requires it instead of always taking the newest release.
Set up an existing Symfony project
An existing repository needs a different sequence from a new project. The repository contains application code, but not necessarily its installed dependencies, production secrets, or database state.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
- Clone the repository into the directory you will deploy, such as
/var/www/project, using the repository address supplied by your Git provider. - Enter the project directory and install the locked dependencies with
composer install. Run Composer as the deployment user where possible, rather than creating a vendor tree owned by an unrelated interactive account. - Provide environment-specific values. Development defaults may live in committed
.envfiles, but production database credentials, mail settings, encryption keys, and other secrets should come from real environment variables or the hosting platform’s configuration mechanism. - Complete the application’s own database setup, migrations, fixtures, file-storage configuration, queue workers, and other documented tasks. Symfony cannot infer these project-specific operations from the framework installation alone.
- Inspect the assembled application with:
php bin/console about
The about command displays useful information about the Symfony application and helps confirm that Composer dependencies and the console bootstrap work before you involve Nginx.
Configure environment and writable directories
Production configuration
Do not treat a developer’s local environment as the production configuration. Set real environment variables through the VPS service manager, deployment process, or hosting platform. Keep secrets out of the Git repository and out of publicly readable files. Symfony’s deployment guidance covers environment-variable handling and hosting-specific configuration mechanisms; use the mechanism that matches how your VPS starts PHP-FPM and background workers.
Cache and logs
The web-server account must be able to write the runtime directories used by the application, especially var/cache/ and var/log/. Grant only the access needed by the web-server and deployment users. Avoid making the entire project world-writable: broad permissions hide ownership mistakes and expose files unnecessarily.
After changing ownership or ACLs, test the permissions as the account that runs PHP-FPM. A successful command-line run as your own login does not prove that the web process can create cache files or append logs.
Run Symfony during development
Symfony CLI includes a local development server with HTTPS and project-aware conveniences. Start it from the project directory with:
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
symfony server:start
To leave it running in the background:
symfony server:start -d
Use the accompanying commands when diagnosing a local process:
symfony server:status
symfony server:log
symfony server:stop
server:status shows whether a process is running and helps identify a port conflict. server:log exposes requests and startup errors, while server:stop terminates a background process cleanly.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
This server is for development on the VPS or on a workstation. It is not the production web server: it is not the place to implement your public TLS termination, long-term process supervision, static-file policy, backups, or production observability. Use Nginx, Apache, FrankenPHP, or Caddy for the live site.
Configure Nginx and PHP-FPM for production
Choose the document root and FPM endpoint
Assume the application lives at /var/www/project. Set Nginx’s root to /var/www/project/public. PHP-FPM can listen on a Unix socket, such as /var/run/php/php8.3-fpm.sock, or on a TCP address. The socket example is version-specific; replace it with the socket created by the PHP-FPM version actually installed on your VPS.
Route requests through the front controller
The following pattern serves existing static files directly, sends every other request to Symfony’s front controller, and rejects direct requests for arbitrary PHP files. Using a named location also means a browser cannot simply request /index.php and bypass the public URL structure.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
server {
listen 80;
server_name example.com;
root /var/www/project/public;
index index.php;
location / {
try_files $uri $uri/ @symfony;
}
location @symfony {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
}
location ~ .php$ {
return 404;
}
}
Replace the server name, project path, and FPM socket with your values. If your PHP-FPM pool listens on TCP, use its address in fastcgi_pass instead. The important properties are that only the front controller is executed, the script filename points to the file under public/, and unrelated PHP files return 404 rather than being interpreted.
Recommended Free Tools
Validate the configuration
Run Nginx’s configuration test before reloading it, then reload only after the test succeeds. Request a normal Symfony route and a known static asset. Finally, request /index.php directly with a browser or curl. A production configuration should not expose the front controller as a separate public endpoint; if it does, revisit the location ordering and front-controller routing before opening the site to users.
When Nginx returns a 502 or a blank error page, check the FPM service, the socket path, and the SCRIPT_FILENAME value first. A syntactically valid Nginx file can still point to a nonexistent socket or to a path outside the deployed release.
Apache, Caddy, and FrankenPHP alternatives
Nginx with PHP-FPM is common on an Ubuntu VPS, but it is not the only supported production arrangement. Apache also uses PHP-FPM when configured that way. Caddy and FrankenPHP provide different server and process models. Whichever server you choose, preserve the same framework boundaries: expose public/, execute the front controller for application routes, prevent arbitrary PHP execution, and give the runtime directories appropriate write access.
Do not substitute the Symfony CLI development server merely because it is easy to start. The production choice should account for TLS, process supervision, access logs, backups, updates, and the way your application handles workers and scheduled tasks.
Deploying updates safely
A repeatable deployment keeps code, dependencies, configuration, and data changes in a known order:
- Fetch the intended revision from version control and place it in the release directory or update the checked-out project.
- Run
composer installso the deployed vendor tree matches the lock file. - Provide or verify production environment variables before booting the new code.
- Perform the database and other application-specific deployment steps documented by the project.
- Confirm that
var/cache/andvar/log/remain writable by the PHP-FPM account. - Run
php bin/console about, inspect the web-server logs, and exercise a representative public route. - Reload services only when configuration or code requires it, and keep a rollback path for the previous known-good release.
The exact migration, worker restart, asset-build, and cache-warm commands depend on the application. Treat them as part of that project’s deployment contract rather than copying commands from an unrelated Symfony application.
Choose a deployment approach
| Approach | Operational control | Server stack | Who handles updates and backups | Scaling path | Cost guidance |
|---|---|---|---|---|---|
| Self-managed Ubuntu VPS | Full control over Ubuntu, Nginx, PHP-FPM, firewall, and release process | Typically Nginx or Apache with PHP-FPM; Caddy and FrankenPHP are alternatives | You are responsible for OS patches, PHP, Symfony, monitoring, backups, and recovery | Move to a larger VPS, add workers or a second node, and externalize database or storage as needed | Varies with the VPS provider, size, storage, traffic, and backup plan; no universal monthly figure |
| Managed Symfony hosting | Less server access, more platform automation | Platform-specific Symfony runtime | The provider supplies some updates, observability, and backup features; verify the exact scope | Use the platform’s documented scaling controls | Terms and included resources vary by provider and region |
| Symfony Cloud | Integrated Symfony deployment workflow rather than hand-built server configuration | Managed Symfony hosting stack | Platform features cover parts of deployment and operations; confirm current commercial terms and backup guarantees | Follow the platform’s environment and scaling model | Current pricing and referral terms require verification |
Symfony Cloud deployments can be initiated with symfony cloud:deploy when the project is configured for that service. A VPS remains the better fit when you need root access, custom daemons, unusual networking, or complete control over the operating system. A managed platform is attractive when reducing patching and server-maintenance work matters more than that control.
Quick Recap
Troubleshooting checklist
Symfony’s requirement check fails
- Compare the installed PHP version with the current requirement of PHP 8.4 or higher.
- Compare enabled extensions from
php -mwith the extensions listed by Symfony’s setup documentation. - Remember that the CLI PHP binary and PHP-FPM can use different versions or configuration files.
The local server will not start
- Run
symfony server:statusto find an existing process or port conflict. - Stop a stale background process with
symfony server:stop. - Read
symfony server:logfor certificate, port, or bootstrap errors.
Nginx returns 404, 403, or 502
- Confirm that
rootends in/public, not the repository root. - Confirm that the PHP-FPM service is running and that
fastcgi_passnames its actual socket or TCP listener. - Check the
SCRIPT_FILENAMEpath and Nginx error log. - Make sure the web-server account can traverse the project path and write
var/cache/andvar/log/.
Unexpected production settings appear
- Inspect the environment supplied to PHP-FPM and the deployment service.
- Do not assume values from a developer’s shell or local
.envfile are present in the service environment. - Verify that secrets and environment-specific values were supplied through the real production configuration mechanism.
Direct PHP files are reachable
- Check the Nginx location order and ensure the generic PHP location returns 404.
- Ensure the only executed script is the front controller under
public/. - Test
/index.phpand another nonexistent PHP path after every server-configuration change.
Final installation checklist
- PHP 8.4 or newer is installed for both CLI and PHP-FPM.
- All extensions required by the Symfony version are enabled.
- Composer, Git, and unzip are available.
- Symfony CLI is installed if you want requirement checks, project creation, or its local tooling.
- A new project was created with
symfony new --webapp my_projectorsymfony new my_project, or an existing project was cloned and prepared withcomposer install. php bin/console aboutruns successfully.- Production environment variables are supplied outside committed development files.
- Nginx or another production server uses
public/as its document root. - PHP-FPM receives only the front controller, while unrelated PHP files return 404.
- The web-server user can write
var/cache/andvar/log/. - Direct access to
/index.phpis rejected, and logs are monitored after deployment.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →




