Skip to content
Follow
Ubuntu Linux

How to Install the Laravel PHP Framework with Nginx on Ubuntu 24.04

Richard
Written by
Richard
Jun 13, 2024 Updated Sep 15, 2026 7 min read
Laravel featured image
Laravel featured image

Laravel with Nginx on Ubuntu 24.04 sets up a fast web server stack to run and test modern PHP web applications. Laravel is a free software toolkit that lets you build websites quickly using clean code, and Nginx is the web server that delivers your pages to visitors.

Advertisement

Ubuntu 24.04 LTS gives you a stable foundation for this setup with regular security updates for five years. Running these tools together creates a complete environment to develop and launch your PHP projects reliably.

⚡ Quick Answer

Install Nginx using `sudo apt install nginx`, then MariaDB with `sudo apt install mariadb-server`. Create a database and user for Laravel within MariaDB. Finally, install PHP-FPM and necessary PHP extensions using `sudo apt install php-fpm php-intl php-mysql …`.

Advertisement

Install Nginx HTTP server on Ubuntu

Installing Nginx HTTP server on Ubuntu 24.04 provides the web server environment required to run your Laravel application. Nginx handles incoming web traffic and routes requests to your PHP application files. You can set this up quickly by running standard package manager commands in your terminal.

To do that, open the Ubuntu terminal and run the commands below to install the Nginx web server.

🐧Bash / Shell
sudo apt update
sudo apt install nginx

Once Nginx is installed, the commands below can start, stop, and enable the Nginx web server to start automatically when your server boots up.

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

You can test the Nginx web server by opening your web browser and browsing to the server’s localhost or IP address.

Advertisement

http://localhost

Welcome to Nginx default page displayed after installation on Ubuntu 24.04
Welcome to Nginx default page displayed after installation on Ubuntu 24.04

When you see the "Welcome to nginx!" page, it means the Nginx HTTP server is successfully installed.

Additional help on installing Nginx on Ubuntu is in the link below.

How to install Nginx on Ubuntu

Advertisement

Install the MariaDB database server on Ubuntu

Installing the MariaDB database server on Ubuntu 24.04 gives your Laravel application a reliable place to store user data and settings. MariaDB runs as a background service that accepts secure connections from your PHP application. You can install the server package directly using the default Ubuntu software repositories.

To install and use the MariaDB database server, use the instructions below.

Open the Ubuntu terminal and run the commands below to install the MariaDB database server.

🐧Bash / Shell
sudo apt update
sudo apt install mariadb-server

Once the MariaDB database server is installed, use the commands below to stop, start, and enable the MariaDB server to start automatically when the server boots.

Advertisement
🐧Bash / Shell
sudo systemctl stop mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb

Run the following commands to validate and test if the MariaDB database server is installed successfully.

🐧Bash / Shell
sudo mariadb

Once you run the commands above, it will log you onto the MariaDB console and display a message similar to the one below.

💻Code
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.11.2-MariaDB-1 Ubuntu 23.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> 

The message tells you that the server is installed successfully.

Additional help on installing MariaDB.

Advertisement

Create a Laravel database

Creating a Laravel database and a dedicated database user allows your application to securely read and write data. You need to set up a new database name and grant specific permissions to a user account so Laravel can connect to MariaDB. This is done by running SQL commands inside the database command-line interface.

As part of the setup, we will create a laraveldb database and a user account called laraveldbuser.

Finally, we'll grant the laraveldbuser full access to the laraveldb database.

All the database steps above can be done using the commands below:

Advertisement

But first, log on to the MariaDB database server:

🐧Bash / Shell
sudo mariadb

Then run the commands below to complete the steps:

💻Code
CREATE DATABASE laraveldb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER laraveldbuser@localhost IDENTIFIED BY 'type_your_password_here';
GRANT ALL ON laraveldb.* TO laraveldbuser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
⚠️WarningEnsure to replace 'type_your_password_here 'with your password.

Install PHP-FPM on Ubuntu Linux

Installing PHP-FPM (FastCGI Process Manager) on Ubuntu Linux allows your web server to process PHP code and run the Laravel framework. PHP-FPM works with Nginx to handle dynamic requests from visitors. You must install PHP-FPM along with several required extensions to ensure all Laravel features work correctly.

Advertisement

Run the commands below to install PHP-FPM.

🐧Bash / Shell
sudo apt install php-fpm php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-json php-sqlite3 php-soap php-ldap php-zip

Additional help on installing PHP

How to install PHP on Ubuntu Linux

Install Laravel via Composer

Installing Laravel via Composer downloads the framework core files and all required dependencies into your project folder. Composer manages PHP packages and sets up the project structure automatically. You run a single terminal command to create a fresh Laravel installation on your server.

First, create these directories to set up Laravel.

  • /var/www/.cache (Composer cache)
  • /var/www/.config (additional Composer configuration),
  • /var/www/laravelapp (Laravel project).
🐧Bash / Shell
sudo mkdir -p /var/www/{.cache,.config,laravelapp}
sudo chown -R www-data:www-data /var/www/{.cache,.config,laravelapp}

You may want to use the GitHub repository to get Laravel’s latest release. To get started, install Composer, Curl, and other dependencies.

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

After installing curl and Composer above, change the directory to the Nginx root directory and download the Laraval packages from Github.

⬛Command Prompt
cd /var/www/laravelapp/
sudo -u www-data composer create-project laravel/laravel .

Once you have completed all the above steps, continue configuring the Nginx web server below to serve the Laravel content.

First, open the '.env' file using the nano editor using the command below.

🐧Bash / Shell
sudo -u www-data nano .env
⚠️WarningThen, change the default 'APP_URL' to match your domain name.

In this example, Laravel will run on the domain 'laravel.example.com'.

💻Code
APP_URL=http://laravel.example.com

Change the default 'DB_CONNECTION' to 'mysql' and uncomment, and change the database details with the information created above.

💻Code
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=laraveldbuser
DB_PASSWORD=strong_password_here

Save and exit the file.

Lastly, run the command below to migrate the database for your Laravel project.

🐧Bash / Shell
sudo -u www-data php artisan migrate

When you are done, run the command below to make the Nginx server owner of the Laraval files in its root directory.

🐧Bash / Shell
sudo chown -R www-data:www-data /var/www/{.cache,.config,laravelapp}

Next, run the commands below to create an Nginx server block file for Laravel.

🐧Bash / Shell
sudo nano /etc/nginx/sites-available/laravel.conf

Then, copy and paste the content block below into the Nginx server block.

🐘PHP
server {
listen 80;
listen [::]:80;
server_name laravel.example.com;
root /var/www/laravelapp/public;

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";

index index.php;

charset utf-8;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ /.(?!well-known).* {
deny all;
}
}

Save the file.

You enable the virtual host and restart the Nginx server to make the Laravel PHP framework accessible. Run the `sudo a2ensite laravel.conf` command to enable the virtual host configuration file, and then run `sudo systemctl restart nginx` to restart the Nginx server.

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

Setup Let's Encrypt SSL/TLS for Laravel

Setting up a Let's Encrypt SSL/TLS certificate with Nginx on Ubuntu 24.04 secures your Laravel site by encrypting traffic between your server and users' browsers. An SSL certificate changes your web address from HTTP to HTTPS and protects sensitive data. You can generate and install free certificates using the Certbot tool.

Please read the post below for additional resources on installing and creating Let's Encrypt SSL certificates for Nginx.

How to set up Let's Encrypt SSL certificate for Nginx on Ubuntu Linux

Once you have restarted the Nginx web server, open your browser and browse to the server hostname or IP address defined in the Nginx server block.

💻Code
http://laravel.example.com

Your Laravel site should be set up and ready to use.

Laravel set up on Ubuntu
Laravel set up on Ubuntu

That should do it!

Conclusion:

  • Installing the Laravel PHP framework with Nginx on Ubuntu 24.04 provides a robust and efficient environment for developing and deploying web applications.
  • The combination of Laravel, Nginx, and Ubuntu creates a powerful stack for hosting modern web applications backed by a strong and reliable community.
  • Following the outlined steps ensures the successful installation and configuration of Nginx, MariaDB, PHP-FPM, and Laravel, with additional guidance on setting up Let's Encrypt SSL/TLS for enhanced security.
  • By leveraging this comprehensive guide, one can confidently set up a secure and robust environment to develop and host Laravel applications.

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard is a writer at Geek Rewind who turns complex IT tasks into clear, step-by-step guides. He draws on years of hands-on experience in system administration and enterprise IT operations, focusing on Windows, Linux and WordPress: the problems people actually run into, and the fixes that work. His server and WordPress guides come from systems he runs himself. Richard builds and maintains the platform behind Geek Rewind, from its Ubuntu servers and Nginx configuration to its custom WordPress plugins. Many new tutorials start with readers' questions, and he's always glad to answer them in the comments.

Advertisement

📚 Related Tutorials

How to Install Nginx on Ubuntu Linux
Ubuntu Linux How to Install Nginx on Ubuntu Linux
How to Install the Laravel PHP Framework with Apache on Ubuntu 24.04
Ubuntu Linux How to Install the Laravel PHP Framework with Apache on Ubuntu 24.04
How to Install GNOME Desktop on Ubuntu 24.04
Ubuntu Linux How to Install GNOME Desktop on Ubuntu 24.04
How to Install KDE Desktop on Ubuntu 24.04
Ubuntu Linux How to Install KDE Desktop on Ubuntu 24.04

No comments yet — be the first to share your thoughts!

Leave a Comment

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