通过Shell脚本自动化代码拉取、依赖安装及服务重启,结合Git Webhook触发,实现“推送即部署”。
/var/www/myproject)。cd /var/www/myproject && git init && git add . && git commit -m "Initial commit";deploy.sh,内容包含拉取代码、安装依赖(composer install)、重启服务(systemctl restart php-fpm && systemctl restart nginx),并赋予执行权限(chmod +x deploy.sh);http://yourdomain.com/deploy),触发事件选择“Push”;使用Ansible(Python编写的自动化工具)通过Playbook定义部署流程,支持批量管理多台Ubuntu服务器。
sudo apt update && sudo apt install ansible;inventory),列出目标服务器IP;install_php.yml),定义任务:更新包缓存、安装Apache/Nginx、PHP及扩展(如php-mysql)、配置Web服务器;ansible-playbook -i inventory install_php.yml -u username -k(-k提示输入密码)。OneinStack是开源的一键部署工具,支持Ubuntu、Debian等系统,可快速安装PHP、Nginx、MySQL、Composer等组件,简化环境配置流程。
wget https://gitcode.com/gh_mirrors/one/oneinstack/archive/master.zip;unzip master.zip && cd oneinstack-master && ./install.sh;Capistrano是Ruby编写的部署工具,支持PHP项目版本控制(Git)、依赖管理(Composer)、零停机部署(通过current软链接指向最新版本)及回滚功能。
gem install capistrano;cap install,生成config/deploy.rb(配置服务器信息、仓库地址)和config/deploy/production.rb(生产环境设置);deploy.rb:添加after :updated, :build钩子,在部署后执行composer install --no-dev;cap production deploy(推送代码),cap production deploy:rollback(回滚到上一版本)。Git-Auto-Deploy是小型HTTP服务器,监听GitHub/GitLab的Webhook请求,自动拉取最新代码并执行自定义命令(如composer install)。
sudo add-apt-repository ppa:git-auto-deploy/git-auto-deploy && sudo apt update && sudo apt install git-auto-deploy);config.json:设置部署目录(如/var/www/myproject)、Webhook密钥;git-auto-deploy;http://yourdomain:8001,触发事件选择“Push”。以上方法覆盖了不同规模项目的需求,可根据团队协作模式(如个人/团队)、项目复杂度(如是否需要依赖管理)选择合适的方式。例如,小型项目可使用基础脚本+Webhook快速上手;多服务器环境推荐Ansible;需要版本管理与回滚则选Capistrano。