centos

centos上laravel如何实现自动化部署

小樊
48
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
看了该问题的人还看了