溫馨提示×

laravel項目在centos上如何實現自動化部署

小樊
51
2025-05-16 22:17:40
欄目: 智能運維

在CentOS上實現Laravel項目的自動化部署可以通過多種方式來完成,以下是一個基本的步驟指南,使用了Git進行版本控制,并結合Shell腳本來實現自動化部署。

前提條件

  1. CentOS服務器:確保你有一臺運行CentOS的服務器。
  2. Web服務器:如Nginx或Apache。
  3. PHP環境:確保服務器上安裝了PHP及其必要的擴展。
  4. 數據庫:如MySQL或PostgreSQL。
  5. Git:用于版本控制。

步驟指南

1. 安裝必要的軟件

首先,確保你的CentOS服務器上安裝了以下軟件:

sudo yum update -y
sudo yum install -y git nginx php-fpm mysql-server

2. 配置Nginx

配置Nginx以指向你的Laravel項目目錄。假設你的項目目錄是/var/www/laravel_project。

sudo nano /etc/nginx/conf.d/laravel.conf

添加以下內容:

server {
    listen 80;
    server_name your_domain.com;

    root /var/www/laravel_project;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ /\.ht {
        deny all;
    }
}

重啟Nginx:

sudo systemctl restart nginx

3. 配置PHP-FPM

編輯PHP-FPM配置文件:

sudo nano /etc/php-fpm.d/www.conf

確保以下行沒有被注釋:

listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx

重啟PHP-FPM:

sudo systemctl restart php-fpm

4. 配置數據庫

創建數據庫并設置權限:

CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;

5. 克隆項目到服務器

在你的服務器上克隆你的Laravel項目:

cd /var/www
git clone https://github.com/your_username/laravel_project.git

6. 設置環境變量

在項目根目錄下創建一個.env文件,并設置必要的環境變量:

cd /var/www/laravel_project
cp .env.example .env
nano .env

設置以下變量:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=your_app_key
APP_DEBUG=false
APP_URL=http://your_domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_password

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

7. 安裝依賴

安裝Composer并安裝項目依賴:

sudo yum install -y composer
cd /var/www/laravel_project
composer install --no-interaction --prefer-dist

8. 運行遷移和優化

運行數據庫遷移和優化命令:

php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache

9. 設置自動化部署腳本

創建一個自動化部署腳本deploy.sh

nano deploy.sh

添加以下內容:

#!/bin/bash

# Clone the latest version of the project
cd /var/www
git pull origin main

# Install dependencies
cd laravel_project
composer install --no-interaction --prefer-dist

# Run migrations and optimize
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Restart Nginx and PHP-FPM
sudo systemctl restart nginx
sudo systemctl restart php-fpm

echo "Deployment completed successfully!"

賦予腳本執行權限:

chmod +x deploy.sh

10. 設置Webhook

在你的Git倉庫(如GitHub)中設置Webhook,指向你的服務器上的部署腳本URL。例如:

http://your_domain.com/deploy.sh

總結

通過以上步驟,你可以在CentOS上實現Laravel項目的自動化部署。每次你推送代碼到Git倉庫時,Webhook會觸發部署腳本,自動拉取最新代碼、安裝依賴、運行遷移并重啟Web服務器。這樣可以大大簡化部署流程,提高效率。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女