Jenkins自动化部署tomcat环境 PHP环境

一、Jenkins 是啥?

Jenkins 就是一个自动帮你干活 的工具,专门用来持续集成 (CI)和持续交付/部署 (CD)。

它用 Java 写的,装起来很简单,下载一个 jenkins.war 文件就能跑,不用装数据库。

它可以自动从 Git、SVN 这类代码仓库拉代码,然后编译、测试、打包、甚至部署到服务器上。

出了问题会发邮件提醒,还能用图表展示构建情况。


二、啥是 CI / CD?

  • 持续集成(CI):开发人员一天多次把代码提交到主干,Jenkins 自动拉代码、编译、测试。这样能早点发现冲突和错误,避免最后集成时乱成一锅粥。

  • 持续交付(CD):在 CI 的基础上,自动把代码部署到"类生产环境"(比如测试服务器),随时可以手动发布到生产。

  • 持续部署(CD) :更近一步,代码通过测试后自动部署到生产环境,不用人工点按钮。

简单说:CI 解决"代码能不能合到一起",CD 解决"代码能不能随时上线"。


三、怎么安装 Jenkins(以 OpenEuler 系统为例)

  1. 添加安装源:下载 Jenkins 的 repo 文件,导入密钥。

  2. 安装 :先装 fontconfigjava-17-openjdk,再装 jenkins

  3. 启动后访问 :浏览器打开 Jenkins,第一次登录需要从服务器上找初始密码(命令 cat /var/lib/jenkins/secrets/initialAdminPassword)。

  4. 初始化设置:安装推荐插件、创建管理员账号、配置实例地址。

  5. 改密码、装插件:登录后可以改密码,按需安装插件,比如:

    • Publish Over SSH:通过 SSH 把文件发到远程服务器。

    • Maven Integration:支持 Maven 项目构建。

  6. 调整配置:设置 Jenkins 同时跑几个任务、配置邮件通知等。


四、一句话总结

这份文档就是教你从零搭一个 Jenkins 自动构建环境,让代码一提交就自动编译、测试、打包,还能自动发到服务器,省得手动折腾。适合想要提高开发效率和发布质量的团队。

PHP

1. 准备工作(环境)

  • 有几台机器:Git 服务器 (放代码)、Jenkins 服务器 (负责自动发布)、Web 服务器(跑网站)。

  • 需要先装好 Git、Jenkins、Web 环境(比如 Nginx + PHP + MySQL)。


2. 搭建 Git 仓库

  • 在 Git 服务器上新建一个用户 git,然后建一个"裸仓库"(就是一个专门用来存代码版本、不干活的地方)。

  • 开发人员把写好的 PHP 代码(比如 index.php)上传到这个仓库里。


3. 配置 Web 服务器

  • 安装 Nginx(或 Apache)+ PHP + MySQL + PHP-FPM。

  • 修改 Nginx 配置文件,让它能处理 .php 文件。

  • 启动服务,测试一下能正常访问 PHP 页面。


4. Jenkins 免密登录

  • 在 Jenkins 机器上生成 SSH 密钥(公钥+私钥)。

  • 公钥复制到 Git 服务器和 Web 服务器上,这样 Jenkins 不用输密码就能拉代码、推代码。


5. 几种自动部署方式

方式一:用 rsync 同步(自由风格项目)
  • 在 Jenkins 里新建一个"自由风格"任务。

  • 配置 Git 仓库地址,让 Jenkins 去拉代码。

  • 构建步骤里写 rsync 命令,把拉下来的代码同步到 Web 服务器的网站目录。

  • 点"立即构建",Jenkins 就会自动完成拉代码+同步。

方式二:用 Ansible 部署
  • 在 Jenkins 机器上装 Ansible,配置好 Web 服务器的 IP(比如 [webserver] 组)。

  • 把 Jenkins 运行用户改成 root(避免权限问题),并配好 SSH 免密。

  • 安装 Jenkins 的 Ansible 插件。

  • 在 Jenkins 任务里调用 Ansible 命令或 playbook,把代码部署到 Web 服务器。

方式三:用 Pipeline(流水线)
  • 写一个 Jenkinsfile,里面定义两个阶段:

    1. 拉代码 :用 git 从仓库克隆代码。

    2. 部署 :用 scp 命令把代码复制到 Web 服务器上。

  • Jenkins 按这个脚本自动执行,成功或失败都会有提示。


6. 最后顺便提了一下 Discuz 论坛的部署

  • 文档里只写了个标题,内容没展开,意思是可以把 Discuz(一个 PHP 论坛程序)也按同样方式自动部署。

总结一句话

让 Jenkins 自动从 Git 拉取 PHP 代码,然后通过 rsync、Ansible 或 scp 把它发到 Web 服务器上,省得每次手动上传。 前提是先把 SSH 免密登录配好,Web 环境也要提前装好。

相关推荐
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
dayuOK63073 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
志栋智能3 天前
超自动化巡检:如何选择适合你的起点?
运维·自动化
HackTwoHub3 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
csdndeyeye3 天前
拆解AI投简历插件:塔塔网申的技术逻辑和实测数据
人工智能·自动化·秋招·ai投简历插件·ai找工作·求职助手·应届生就业
小白学大数据3 天前
Python + 大模型行业资讯自动化摘要流水线完整工程实现方案
开发语言·python·自动化
Super Scraper3 天前
如何批量抓取 TikTok 数据而不被封锁?完整指南
爬虫·ai·自动化·抖音·tiktok·ai agent
醉颜凉3 天前
Elasticsearch高性能优化:Bulk API大规模数据导入性能调优全攻略
elasticsearch·性能优化·jenkins
曦尧3 天前
GitHub - jwasham/coding-interview-university: 一份完整的计算机科学学习计划,助你成为软件工程师。· GitHub
ai·自动化