在CentOS服务器上实现Laravel的自动部署,可以通过以下几个步骤来完成:
安装必要的软件:
配置Nginx/Apache:
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;
}
}
<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>
确保你可以通过SSH访问服务器,并且有足够的权限来执行部署操作。
在服务器上克隆你的Laravel项目仓库:
git clone https://github.com/yourusername/your-laravel-project.git /path/to/your/laravel/project
cd /path/to/your/laravel/project
创建一个自动部署脚本,例如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
使用cron设置定时任务,定期执行部署脚本:
crontab -e
添加以下行,每天凌晨2点执行部署脚本:
0 2 * * * /path/to/deploy.sh >> /var/log/laravel_deploy.log 2>&1
如果你希望更高级的自动化和持续集成/持续部署(CI/CD),可以考虑使用Jenkins、GitLab CI、GitHub Actions等工具。
安装Jenkins:
sudo yum install jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
配置Jenkins Job:
H/5 * * * *表示每5分钟检查一次)。/path/to/deploy.sh)。通过以上步骤,你可以在CentOS服务器上实现Laravel的自动部署。