3.9 KiB
Executable File
Deploying a Laravel Application on Nginx
This guide covers the steps to deploy a Laravel application on an Nginx web server. You’ll configure Nginx, install PHP and required extensions, set up Composer, and secure your Laravel application.
Prerequisites
- A Linux server with root or sudo privileges.
- Nginx installed or installation instructions are provided below.
- PHP and required extensions for running Laravel applications.
- Composer installed for managing Laravel dependencies.
Step 1: Install Nginx
-
Update the package list:
sudo apt update -
Install Nginx:
sudo apt install nginx
Step 2: Configure Nginx for Laravel
-
Open the default Nginx configuration file:
sudo nano /etc/nginx/sites-available/default -
Replace the existing content with the following configuration. Make sure to replace
your_domain.comwith your domain or server’s IP address.server { listen 80; server_name your_domain.com; root /var/www/html/your_laravel_project/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Adjust PHP version if necessary } location ~ /\.ht { deny all; } } -
Save and close the file.
-
Test the Nginx configuration for syntax errors:
sudo nginx -t -
Restart Nginx to apply the new configuration:
sudo systemctl restart nginx
Step 3: Install PHP and Required Extensions
-
Add the PHP PPA repository:
sudo add-apt-repository ppa:ondrej/php sudo apt update -
Install PHP and required extensions for Laravel:
sudo apt install php7.4-fpm php7.4-mbstring php7.4-xml php7.4-zip php7.4-mysql php7.4-curl php7.4-gd
Step 4: Install Composer
- Download and install Composer globally:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Step 5: Deploy the Laravel Application
-
Clone or upload your Laravel project to the Nginx web root:
sudo mkdir -p /var/www/html/your_laravel_project # Clone or upload your project files here -
Set appropriate permissions for the Laravel
storageandbootstrap/cachedirectories:cd /var/www/html/your_laravel_project sudo chown -R www-data:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache -
Install Laravel dependencies with Composer:
cd /var/www/html/your_laravel_project composer install --no-dev --optimize-autoloader -
Generate an application key for Laravel:
php artisan key:generate
Step 6: Restart PHP-FPM
Restart PHP-FPM to apply any changes:
sudo systemctl restart php7.4-fpm # Adjust PHP version as needed
Summary and Final Checks
Your Laravel application should now be deployed and accessible through Nginx. Visit http://your_domain.com in a browser to confirm that the application is working.
Additional Notes
- Security: Ensure the
APP_ENVin your.envfile is set toproductionfor live applications. - Permissions: For added security, periodically review file and folder permissions, particularly within the
storageandbootstrap/cachedirectories. - SSL/TLS: For a production environment, set up SSL using Certbot for secure HTTPS access.
This guide provides the foundational steps to deploy a Laravel application on Nginx. Customize configurations further as per your project requirements.