How to Install Laravel With Nginx?

Sinelogix > Laravel > How to Install Laravel With Nginx?
Install Laravel With Nginx

Laravel, the PHP web application framework, has transformed the world of web development with its elegant syntax and powerful features. When it comes to deploying Laravel applications, Nginx, a high-performance web server and reverse proxy server, is a popular choice.

This article will provide you with a comprehensive guide on how to install Laravel with Nginx, empowering you to build robust web applications efficiently.

In this guide, we will walk you through the installation process step by step, ensuring you have a solid foundation for running Laravel with Nginx.

Whether you’re a seasoned developer or just beginning your web development journey, this article will equip you with the knowledge and skills needed to harness the power of Laravel with the performance and reliability of Nginx.


Before diving into the installation process, it’s crucial to ensure you have the necessary prerequisites in place. To install Laravel with Nginx, you’ll need the following:

A. A Server or VPS: You should have access to a server or VPS (Virtual Private Server) with a fresh installation of your preferred Linux distribution. Common choices include Ubuntu, CentOS, and Debian.

B. SSH Access: To interact with your server, you’ll need SSH access. Ensure you have your SSH credentials ready.

C. Domain or IP Address: You should have a domain name pointed to your server’s IP address. If you’re just testing or developing locally, you can use your server’s IP address.

With these prerequisites met, let’s move on to the installation process.

Installing Nginx

Nginx is a robust web server and reverse proxy server known for its speed and reliability. To install Nginx, follow these steps:

Step 1: Update Your Server

Connect to your server via SSH and update your package list with the following command:

sudo apt update

For CentOS, use yum instead of apt.

Step 2: Install Nginx

To install Nginx, run the following command:

sudo apt install nginx

For CentOS, use yum instead of apt.

Step 3: Start Nginx

After installation, start Nginx and enable it to start on boot:

sudo systemctl start nginx
sudo systemctl enable nginx

For CentOS, replace systemctl with service.

Step 4: Adjust Firewall Settings

If you have a firewall enabled (like UFW for Ubuntu), allow HTTP and HTTPS traffic:

sudo ufw allow 'Nginx Full'

For CentOS, use firewall-cmd to open the necessary ports.

Nginx is now installed and running. The next step is to set up PHP and Composer.

Installing PHP and Composer

Laravel relies on PHP for its execution, and Composer is a vital dependency manager for Laravel. Let’s install both:

Step 1: Install PHP

Install PHP and necessary extensions by running:

sudo apt install php-fpm php-mysql php-cli php-json php-common php-mbstring php-zip php-gd php-xml php-curl

For CentOS, replace apt with yum.

Step 2: Start PHP-FPM

Start the PHP-FPM service and enable it:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Step 3: Install Composer

To install Composer, use the following commands:

php -r "copy('', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

Composer is now ready to use. With PHP and Composer installed you’re well-equipped for Laravel development. The next step is setting up a Laravel project.

Setting Up a Laravel Project

Creating a new Laravel project is straightforward with Composer. Navigate to your desired web directory and run the following command to create a new Laravel project:

composer create-project --prefer-dist laravel/laravel my-laravel-app

Replace my-laravel-app with the name of your project. This command will download and install Laravel, creating the necessary directory structure and files.

Once the installation is complete, you’ll have a fresh Laravel project ready for development. You can explore the project directory to familiarize yourself with Laravel’s structure. Key directories include app, bootstrap, config, and resources, which house various components of your application.

The next step is configuring Nginx to serve your Laravel application.

Configuring Nginx for Laravel

To configure Nginx for Laravel, you’ll need to create a virtual host file for your application. Follow these steps:

Step 1: Create a New Nginx Configuration File

Navigate to the Nginx sites-available directory:

cd /etc/nginx/sites-available

Create a new configuration file for your Laravel application:

sudo nano my-laravel-app

Replace my-laravel-app with a suitable name for your project.

Step 2: Configure the Virtual Host

In the configuration file, add the following Nginx server block, adjusting it to match your domain or IP address:

server {
listen 80;
root /var/www/html/my-laravel-app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Use the correct PHP version socket
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

Save the file and exit the text editor.

Step 3: Enable the Configuration

Create a symbolic link to enable the configuration file:

sudo ln -s /etc/nginx/sites-available/my-laravel-app /etc/nginx/sites-enabled/

Step 4: Test and Reload Nginx

Check the Nginx configuration for any syntax errors:

sudo nginx -t

If no errors are found, reload Nginx to apply the changes:

sudo systemctl reload nginx

Nginx is now configured to serve your Laravel application. The next step is to secure your Laravel installation.

Securing Your Laravel Application

Security is a top priority when deploying web applications. Here are some essential steps to secure your Laravel application:

Step 1: Update Laravel Dependencies

Keep your Laravel application and its dependencies up to date. Run the following commands from your project’s root directory:

composer update

Step 2: Configure Environment Variables

Ensure your .env file in the Laravel project’s root directory does not contain sensitive information like database passwords. Move these details to the server environment.

Step 3: Implement HTTPS

Consider using SSL/TLS to secure your application. You can obtain a free SSL certificate from Let’s Encrypt or use a paid certificate for added security.

Step 4: Use Authentication and Authorization

Laravel provides robust tools for user authentication and authorization. Implement these features to secure access to your application’s resources.

With these security measures in place, your Laravel application will be well-protected. The next step is to test your installation.

Testing Your Laravel Installation

To ensure your Laravel installation is working correctly, follow these steps:

Step 1: Restart Nginx

Restart Nginx to apply any changes you’ve made to the configuration:

sudo systemctl restart nginx

Step 2: Access Your Laravel Application

Open a web browser and enter your domain or server’s IP address. You should see the Laravel welcome page, indicating a successful installation.

Step 3: Create Routes and Views

Begin developing your Laravel application by creating routes and views. You can use the Laravel documentation to explore its features and start building your project.

By following this guide, you’ve successfully installed Laravel with Nginx and are ready to embark on your web development journey.

Related Articles:


In this comprehensive guide, we’ve walked you through the process of installing Laravel with Nginx, a powerful combination for web development. We started with the prerequisites, ensuring you have the necessary elements in place. Then, we installed Nginx, PHP, and Composer, setting the stage for Laravel development.

Creating a Laravel project was made easy with Composer, and configuring Nginx to serve your application was a seamless process. We emphasized the importance of security and offered steps to secure your Laravel installation.

With your Laravel application up and running, you’re now equipped to build powerful and secure web applications, thanks to the winning combination of Laravel and Nginx.

Related Posts