centos

centos服务器上laravel如何实现自动部署

小樊
47
2025-08-14 14:51:45
栏目: 云计算

在CentOS服务器上实现Laravel的自动部署,可以通过以下几个步骤来完成:

1. 准备工作

2. 设置Web服务器

Nginx配置示例

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;
    }
}

Apache配置示例

<VirtualHost *:80>
    ServerName yourdomain.com

    DocumentRoot /path/to/your/laravel/project/public

    <Directory /path/to/your/laravel/project/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
</VirtualHost>

3. 配置SSH访问

确保你可以通过SSH访问服务器,并且有足够的权限来执行部署操作。

4. 使用Git进行版本控制

在服务器上克隆你的Laravel项目仓库:

git clone https://github.com/yourusername/your-laravel-project.git /path/to/your/laravel/project
cd /path/to/your/laravel/project

5. 设置自动部署脚本

创建一个自动部署脚本,例如deploy.sh

#!/bin/bash

# 设置项目路径
PROJECT_PATH="/path/to/your/laravel/project"

# 进入项目目录
cd $PROJECT_PATH

# 拉取最新代码
git pull origin main

# 安装依赖
composer install --no-interaction --prefer-dist --optimize-autoloader

# 生成应用密钥
php artisan key:generate --force

# 运行迁移
php artisan migrate --force

# 清理缓存
php artisan config:clear
php artisan cache:clear
php artisan view:clear

# 重启Web服务器
systemctl restart nginx  # 或者 systemctl restart httpd

6. 设置定时任务

使用cron设置定时任务,定期执行部署脚本:

crontab -e

添加以下行,每天凌晨2点执行部署脚本:

0 2 * * * /path/to/deploy.sh >> /var/log/laravel_deploy.log 2>&1

7. 使用CI/CD工具(可选)

如果你希望更高级的自动化和持续集成/持续部署(CI/CD),可以考虑使用Jenkins、GitLab CI、GitHub Actions等工具。

Jenkins示例

  1. 安装Jenkins

    sudo yum install jenkins
    sudo systemctl start jenkins
    sudo systemctl enable jenkins
    
  2. 配置Jenkins Job

    • 创建一个新的Freestyle项目。
    • 在“源码管理”部分选择Git,并填写你的仓库URL和凭证。
    • 在“构建触发器”部分选择“Poll SCM”,并设置定时任务(例如H/5 * * * *表示每5分钟检查一次)。
    • 在“构建”部分添加一个“执行Shell”步骤,输入你的部署脚本路径(例如/path/to/deploy.sh)。

通过以上步骤,你可以在CentOS服务器上实现Laravel的自动部署。

0
看了该问题的人还看了