在CentOS上實現Laravel的自動化部署可以通過多種方式來完成,其中一種常見的方法是使用Git進行版本控制,并結合CI/CD工具(如Jenkins、GitLab CI/CD或GitHub Actions)來實現自動化。以下是一個基本的步驟指南:
在CentOS上安裝必要的軟件包:
sudo yum update -y
sudo yum install -y git php php-fpm php-mysqlnd 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
編輯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
使用Jenkins、GitLab CI/CD或GitHub Actions來實現自動化部署。這里以GitHub Actions為例:
在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
配置GitHub Secrets: 在GitHub倉庫的Settings -> Secrets中添加以下Secrets:
SERVER_HOST: 你的服務器IP地址或域名SERVER_USERNAME: 你的服務器用戶名SERVER_SSH_KEY: 你的服務器SSH密鑰通過上述步驟,你可以實現Laravel項目在CentOS上的自動化部署。每次向main分支推送代碼時,GitHub Actions會自動執行部署流程,包括拉取最新代碼、安裝依賴、運行遷移和優化應用。你可以根據需要調整和擴展這個流程。