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 环境也要提前装好。

相关推荐
我材不敲代码15 小时前
Python 文件与目录自动化实战:os、pathlib、shutil 从入门到精通
python·spring·自动化
北京耐用通信1 天前
自动化工程师必修课:耐达讯自动化Modbus TCP转PROFIBUS协议转换的核心逻辑与应用
人工智能·物联网·网络协议·自动化·信息与通信
无忧智库1 天前
某AI漫剧超级工厂AI绘画与分镜自动化生成流水线详细设计方案(WORD)
人工智能·ai作画·自动化
APIshop1 天前
Python 获取 1688 商品采集 API 接口 | 工厂货源自动化对接商品信息 | 无需选品
运维·python·自动化
weixin_548444261 天前
爆红处理APK 自动化编译流水线 v2026(英文名:APK AutoPipeline)
运维·自动化
GISer_Jing1 天前
AI数字营销全链路自动化闭环_CSDN
运维·人工智能·自动化
Dola_Zou1 天前
工业软件防破解避坑指南:CodeMeter 全流程入门与选型(上)
人工智能·自动化·视觉检测·软件工程·软件加密
哈德森hh1 天前
我的 Twitter 自动化运营流程
运维·自动化·twitter
鬼才血脉1 天前
Idea使用Tomact运行项目,控制台输出中文乱码
tomcat·bug