|NO.Z.00040|——————————|CloudNative|——|CI/CD&Jenkins_pipeline操作.V14|——|Jenkins_pipeline自动化发布PHP项目|
一、Jenkins pipeline自动化发布PHP项目
### --- 环境说明
~~~ ——>环境为:lnmp
~~~ ——>PHP项目:wordpress(此处下载一个wordpress的源码将其模拟为我们的代码上传到我们的git仓库)
### --- 在git服务器创建存储库
[git@git ~]$ mkdir -p repos/wordpress.git
[git@git repos]$ cd repos/wordpress.git/
[git@git wordpress.git]$ git --bare init
[git@git wordpress.git]$ ls -al
### --- 在jenkins服务器端配置
[root@jenkins ~]# git clone git@10.10.10.13:/home/git/repos/wordpress.git
[root@jenkins ~]# tar -zxvf wordpress-5.3.2.tar.gz
[root@jenkins ~]# cd wordpress/
[root@jenkins wordpress]# mv /root/wordpress/wordpress/* .
[root@jenkins wordpress]# git add .
[root@jenkins wordpress]# git commit -m 'wordpress'
[root@jenkins wordpress]# git push -u origin master
### --- 辅助:clone wordpress到本地服务器
[root@jenkins ~]# git config --global user.name "Administrator"
[root@jenkins ~]# git config --global user.email 'yanqi_vip@yeah.net'
[root@jenkins ~]# git status
[root@jenkins ~]# git clone git@192.168.152.138:plat-sp/wordpress.git
二、部署node节点:
### --- 部署node节点:node节点需要在系统管理中配置
~~~ 创建job
~~~ 参数化构建
~~~ 配置pipeline脚本 (直接配置或者git获取)
~~~ 保存




三、创建Jenkinsfile
### --- 接下里编写jenkinsfile文件:jenkinsfile-PHP:源码文件:
node ("jenkins-slave2") {
stage('git checkout') { checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@10.10.10.13:/home/git/repos/wordpress.git']]])
}
swtage('code copy') {
sh '''rm -rf ${WORKSPACE}/.git
mkdir -p /data/backup/web-$(date +"%F")
mv /home/wwwroot/default/* /data/backup/web-$(date +"%F")
cp -rf ${WORKSPACE}/* /home/wwwroot/default/'''
}
stage('test') {
sh "curl http://10.10.10.12/status.html"
}
}
node ("slave01-10.10.10.11") {
stage('git checkout') {
checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@10.10.10.13:/home/git/repos/wordpress.git']]])
}
stage('code copy') {
sh '''rm -rf ${WORKSPACE}/.git
mv /usr/share/nginx/html/wp.com /data/backup/wp.com-$(date +"%F_%T")
cp -rf ${WORKSPACE} /usr/share/nginx/html/wp.com'''
}
stage('test') {
sh "curl http://10.10.10.11/status.html"
}
}
### --- Jenkinsfile.php配置文件说明
node ("slave01-172.16.1.2") { # 绑定到该节点去执行
stage('git checkout') { # 拉代码
checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], su
bmoduleCfg: [], userRemoteConfigs: [[url: 'git@172.16.1.3:/home/git/repos/wordpress']]])
}
# $class: 'GitSCM' git插件获取代码的工具
# branches 分支名称
# doGenerateSubmoduleConfigurations 是否包含子模块配置
# extensions 扩展功能
# submoduleCfg 子模块配置
# userRemoteConfigs 远程用户配置(仓库地址)
stage('code copy') { # 复制代码
sh '''rm -rf ${WORKSPACE}/.git # 删除拉下来的项目的.git敏感文件
mv /usr/share/nginx/html/wp.com /data/backup/wp.com-$(date +"%F_%T") # 备份旧文件
cp -rf ${WORKSPACE} /usr/share/nginx/html# 新文件复制到站点目录
}
stage('test') { # 测试
sh "curl http://wp.test.com/status.html"
}
}
四、执行构建PHP项目
### --- 执行构建PHP项目
~~~ ——>构建概览:
~~~ ——>控制台输出详情:
~~~ ——>可以看到每一步的执行详情,最后也是成功的!!!!!!
~~~ ——>此外我们可以查看服务器及网页实际体验效果进行验证。



Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv015-jenkins2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」