Skip to content
Follow
Ubuntu Linux

How to Install Symfony 5 with Nginx on Ubuntu Linux

Richard
Written by
Richard
Jan 13, 2020 Updated Jun 20, 2026 4 min read
How to Display Seconds on Ubuntu Top Menu Clock
How to Display Seconds on Ubuntu Top Menu Clock

You install Symfony 5 with Nginx on Ubuntu Linux by configuring your server and project dependencies. Symfony is a modern, open-source PHP framework built for developing web applications and APIs, known for its collection of reusable PHP components.

This process specifically sets up Symfony version 5 on an Ubuntu system. We’ll be using Nginx, a high-performance web server renowned for its efficiency and ability to handle high traffic loads.

Following these steps, you’ll establish a powerful environment for building and deploying fast, reliable PHP applications using Symfony 5 and Nginx.

⚡ Quick Answer

Install Nginx using `sudo apt install nginx`, then PHP 7.2-FPM and modules with `sudo apt install php7.2-fpm`. Download Symfony using Composer and configure Nginx by creating a new site file in `/etc/nginx/sites-available/`.

Install Nginx HTTP Server

Nginx is a popular web server that works well with Symfony. To install Nginx on your Ubuntu system, you’ll need to run a couple of commands in your terminal.

🐧Bash / Shell
sudo apt update
sudo apt install nginx

After installing Nginx, the commands below can be used to stop, start, and enable the Nginx service to always start up with the server boots.

🐧Bash / Shell
sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Now that Nginx has been installed, browse your browser to the URL below to test whether the web server works.

💻Code
http://localhost
nginx default home page test
nginx default page

If you see the page above, then Nginx is successfully installed.

Symfony is built using PHP, so you need to install PHP to run it. If your Ubuntu version doesn’t have PHP 7.2-FPM in its default software list, you’ll need to add a special source first.

🐧Bash / Shell
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Then update and upgrade to PHP 7.2-FPM

🐧Bash / Shell
sudo apt update

Next, run the commands below to install PHP 7.2-FPM and related modules.

🐧Bash / Shell
sudo apt install php7.2-fpm php7.2-common php7.2-sqlite3 php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-ldap php7.2-gd php7.2-bcmath php7.2-xml php7.2-cli php7.2-zip

After installing PHP 7.2-FPM, run the commands below to open Nginx’s PHP default configuration file.

🐧Bash / Shell
sudo nano /etc/php/7.2/fpm/php.ini
💡Tip
The lines below are a good setting for most PHP-based CMS. Update the configuration file with these and save.
💻Code
file_uploads = On
allow_url_fopen = On
short_open_tag = On
cgi.fix_pathinfo = 0
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Restarting the Nginx web server whenever you change the PHP configuration file would be best. To do so, run the commands below:

🐧Bash / Shell
sudo systemctl restart nginx.service

Download Symfony’s Latest Release

Composer is a tool that helps you download and manage Symfony and its many parts. To get the latest Symfony version, you’ll first need to install Composer on your Ubuntu machine using these commands.

To install Composer on Ubuntu, run the commands below:

🐧Bash / Shell
sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

After installing Composer above, change the Nginx home directory and download Symfony packages into a new project folder called symfony5.

Command Prompt
cd /var/www/
sudo composer create-project symfony/skeleton symfony5
⚠️Warning
Then, run the commands below to set the correct permissions for the Symfony root directory and give Nginx control.
🐧Bash / Shell
sudo chown -R www-data:www-data /var/www/symfony5/
sudo chmod -R 755 /var/www/symfony5/

Configure Nginx

Now you need to tell Nginx how to handle requests for your Symfony site. You’ll create a new Nginx configuration file and add specific settings to it so Nginx knows where your Symfony files are.

🐧Bash / Shell
sudo nano /etc/nginx/sites-available/symfony

Then copy and paste the content below into the file and save it. Replace the highlighted line with your domain name and directory root location.

🐘PHP
server {
    listen 80;
    listen [::]:80;

    server_name  example.com www.example.com;
    root   /var/www/symfony5/public;
    index  index.php;
    
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    client_max_body_size 100M;
  
    autoindex off;

    location / {
    try_files $uri /index.php$is_args$args;
      }

    location ~ .php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         include fastcgi_params;
         fastcgi_intercept_errors on;
    }
}

Save the file and exit.

Enable the Symfony

With the Nginx configuration ready, you need to turn it on for your Symfony site. This involves creating a link to your configuration file and then restarting Nginx so it uses the new settings.

🐧Bash / Shell
sudo ln -s /etc/nginx/sites-available/symfony /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Then, open your browser and browse to the host’s domain name or server IP address. You should then see the Symfony 5 homepage.

💻Code
http://example.com/
Symfony Ubuntu Install
symfony ubuntu install

Symfony 5 framework application is now ready, and you can start working on it.

Conclusion:

This post shows you how to install the Symfony 5 framework on Ubuntu 18.04 | 16.04. If you find any error, please report it in the comment form below.

You may also like the post below:

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.

📚 Related Tutorials

How to Install Let's Chat on Ubuntu Linux
Ubuntu Linux How to Install Let's Chat on Ubuntu Linux
Change Power Button Behavior in Ubuntu Linux
Ubuntu Linux Change Power Button Behavior in Ubuntu Linux
Working with Sudo and Su Commands in Ubuntu Linux
Ubuntu Linux Working with Sudo and Su Commands in Ubuntu Linux

0 Comments

Leave a Comment

Your email address will not be published. Required fields are marked *