溫馨提示×

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

小樊
55
2025-07-04 12:46:20
欄目: 智能運維

在CentOS上實現Laravel的自動化部署可以通過多種方式來完成,其中一種常見的方法是使用Git進行版本控制,并結合CI/CD工具(如Jenkins、GitLab CI/CD或GitHub Actions)來實現自動化。以下是一個基本的步驟指南:

前提條件

  1. CentOS服務器:確保你有一個運行CentOS的服務器,并且已經安裝了必要的軟件(如Nginx、PHP、MySQL等)。
  2. Git倉庫:你的Laravel項目應該托管在一個Git倉庫中(如GitHub、GitLab或Bitbucket)。
  3. SSH密鑰:在服務器上生成SSH密鑰,并將其添加到Git倉庫的部署密鑰中。

步驟指南

1. 安裝必要的軟件

在CentOS上安裝必要的軟件包:

sudo yum update -y
sudo yum install -y git php php-fpm php-mysqlnd nginx

2. 配置Nginx

創建一個新的Nginx配置文件來服務你的Laravel應用:

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

添加以下內容:

server {
    listen 80;
    server_name yourdomain.com;

    root /path/to/your/laravel/project/public;
    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

重啟PHP-FPM服務:

sudo systemctl restart php-fpm

4. 設置自動化部署

使用Jenkins、GitLab CI/CD或GitHub Actions來實現自動化部署。這里以GitHub Actions為例:

  1. 在GitHub上創建一個Workflow文件: 在你的Laravel項目的.github/workflows目錄下創建一個新的YAML文件,例如deploy.yml

    name: Deploy to Production
    
    on:
      push:
        branches:
          - main
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
    
        steps:
        - name: Checkout code
          uses: actions/checkout@v2
    
        - name: Install dependencies
          run: |
            cd /path/to/your/laravel/project
            composer install --no-interaction --prefer-dist
    
        - name: Run migrations
          run: |
            cd /path/to/your/laravel/project
            php artisan migrate --force
    
        - name: Optimize
          run: |
            cd /path/to/your/laravel/project
            php artisan optimize
    
        - name: Deploy to server
          uses: appleboy/scp-action@master
          with:
            host: ${{ secrets.SERVER_HOST }}
            username: ${{ secrets.SERVER_USERNAME }}
            key: ${{ secrets.SERVER_SSH_KEY }}
            source: |
              cd /path/to/your/laravel/project
              git pull origin main
              composer install --no-interaction --prefer-dist
              php artisan migrate --force
              php artisan optimize
            target: /path/to/your/laravel/project
    
  2. 配置GitHub Secrets: 在GitHub倉庫的Settings -> Secrets中添加以下Secrets:

    • SERVER_HOST: 你的服務器IP地址或域名
    • SERVER_USERNAME: 你的服務器用戶名
    • SERVER_SSH_KEY: 你的服務器SSH密鑰

總結

通過上述步驟,你可以實現Laravel項目在CentOS上的自動化部署。每次向main分支推送代碼時,GitHub Actions會自動執行部署流程,包括拉取最新代碼、安裝依賴、運行遷移和優化應用。你可以根據需要調整和擴展這個流程。

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