在CentOS上进行Laravel项目的自动化部署可以通过多种方式实现,以下是一个基本的步骤指南,使用Git进行版本控制,并结合Shell脚本来实现自动化部署。
首先,确保你的CentOS服务器上安装了以下软件:
sudo yum update -y
sudo yum install -y git nginx php-fpm mysql php-mysqlnd
创建一个新的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
编辑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
在你的服务器上创建一个目录来存放你的Laravel项目,并克隆你的Git仓库:
cd /var/www
sudo git clone https://github.com/yourusername/your-laravel-project.git
确保Web服务器用户(通常是nginx或apache)对项目目录有读写权限:
sudo chown -R nginx:nginx /var/www/your-laravel-project
sudo 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
创建一个.env文件并配置数据库连接等信息:
cd /var/www/your-laravel-project
sudo cp .env.example .env
sudo nano .env
根据你的数据库配置修改.env文件中的内容。
生成Laravel应用密钥:
sudo -u nginx php artisan key:generate
运行数据库迁移以设置数据库表:
sudo -u nginx php artisan migrate
创建一个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
你可以使用cron来定期运行部署脚本。编辑crontab文件:
sudo crontab -e
添加以下行来每天凌晨2点运行部署脚本:
0 2 * * * /var/www/deploy.sh
通过上述步骤,你可以在CentOS上实现Laravel项目的自动化部署。你可以根据实际需求调整脚本和配置文件,以适应不同的部署环境和需求。