温馨提示×

laravel项目在centos上如何进行自动化部署

小樊
33
2025-11-21 19:53:08
栏目: 智能运维

在CentOS上进行Laravel项目的自动化部署可以通过多种方式实现,以下是一个基本的步骤指南,使用Git进行版本控制,并结合Shell脚本来实现自动化部署。

前提条件

  1. CentOS服务器:确保你有一台运行CentOS的服务器。
  2. Web服务器:如Nginx或Apache。
  3. PHP环境:确保服务器上安装了PHP及其必要的扩展。
  4. 数据库:如MySQL或PostgreSQL。
  5. Git:用于版本控制。

步骤指南

1. 安装必要的软件

首先,确保你的CentOS服务器上安装了以下软件:

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

2. 配置Nginx

创建一个新的Nginx配置文件来服务你的Laravel应用:

sudo nano /etc/nginx/conf.d/yourapp.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
listen.owner = nginx
listen.group = nginx

重启PHP-FPM服务:

sudo systemctl restart php-fpm

4. 克隆项目到服务器

在你的服务器上创建一个目录来存放你的Laravel项目,并克隆你的Git仓库:

cd /var/www
sudo git clone https://github.com/yourusername/your-laravel-project.git

5. 设置权限

确保Web服务器用户(通常是nginxapache)对项目目录有读写权限:

sudo chown -R nginx:nginx /var/www/your-laravel-project
sudo chmod -R 755 /var/www/your-laravel-project

6. 安装Composer依赖

进入项目目录并安装Composer依赖:

cd /var/www/your-laravel-project
sudo -u nginx composer install --no-interaction --prefer-dist --optimize-autoloader

7. 配置环境变量

创建一个.env文件并配置数据库连接等信息:

cd /var/www/your-laravel-project
sudo cp .env.example .env
sudo nano .env

根据你的数据库配置修改.env文件中的内容。

8. 生成应用密钥

生成Laravel应用密钥:

sudo -u nginx php artisan key:generate

9. 运行数据库迁移

运行数据库迁移以设置数据库表:

sudo -u nginx php artisan migrate

10. 创建自动化部署脚本

创建一个Shell脚本来自动化上述步骤:

nano deploy.sh

添加以下内容:

#!/bin/bash

# 克隆项目
cd /var/www
if [ ! -d "your-laravel-project" ]; then
    git clone https://github.com/yourusername/your-laravel-project.git
else
    cd your-laravel-project
    git pull origin main
fi

# 设置权限
chown -R nginx:nginx /var/www/your-laravel-project
chmod -R 755 /var/www/your-laravel-project

# 安装Composer依赖
cd /var/www/your-laravel-project
sudo -u nginx composer install --no-interaction --prefer-dist --optimize-autoloader

# 生成应用密钥
sudo -u nginx php artisan key:generate

# 运行数据库迁移
sudo -u nginx php artisan migrate

echo "Deployment completed successfully!"

赋予脚本执行权限:

chmod +x deploy.sh

11. 设置定时任务

你可以使用cron来定期运行部署脚本。编辑crontab文件:

sudo crontab -e

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

0 2 * * * /var/www/deploy.sh

总结

通过上述步骤,你可以在CentOS上实现Laravel项目的自动化部署。你可以根据实际需求调整脚本和配置文件,以适应不同的部署环境和需求。

0