在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会自动执行部署流程,包括拉取最新代码、安装依赖、运行迁移和优化应用。你可以根据需要调整和扩展这个流程。