Table of Contents
Deploying Laravel applications with PHP 8.2 can significantly enhance your website’s speed and performance. This step-by-step tutorial guides you through the process to ensure a smooth deployment experience.
Prerequisites
- Server with Linux OS (Ubuntu preferred)
- Root or sudo access
- Domain name pointed to your server
- PHP 8.2 installed on your server
- Composer installed
- Laravel project ready for deployment
Installing PHP 8.2
First, update your package list and install PHP 8.2 along with necessary extensions.
Run the following commands:
sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-mbstring php8.2-xml php8.2-bcmath php8.2-curl php8.2-mysql php8.2-zip
Installing Composer
If Composer is not installed, run these commands to install it globally:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
Deploying Laravel Application
Clone your Laravel project into the server directory:
cd /var/www
git clone https://github.com/yourusername/yourlaravelproject.git
cd yourlaravelproject
Install dependencies with Composer:
composer install --optimize-autoloader --no-dev
Configuring Environment
Copy the example environment file and update database credentials:
cp .env.example .env
nano .env
Generate the application key:
php artisan key:generate
Setting Permissions
Ensure storage and bootstrap cache are writable:
sudo chown -R www-data:www-data /var/www/yourlaravelproject
sudo chmod -R 775 storage bootstrap/cache
Configuring Web Server
Set up Nginx or Apache to serve your Laravel project. For Nginx, create a server block:
sudo nano /etc/nginx/sites-available/laravel
Insert the following configuration:
server {
listen 80;
server_name yourdomain.com;
root /var/www/yourlaravelproject/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Enable the site and restart Nginx:
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Final Steps
Run database migrations:
php artisan migrate --force
Clear caches:
php artisan cache:clear
php artisan config:cache
Your Laravel application is now deployed with PHP 8.2, optimized for speed. Test your website to ensure everything functions correctly.