Jenkins 发布PHP项目代码

基于Jenkins发布php代码,其实核心就是三个插件

  • git/svn 插件
  • Push Over SSH 插件 
  • Role-based Authorization Strategy (该插件就是用于管理多项目时,用户权限分配,不同的角色控制不同项目)

网络上的资料,基本都是介绍如何配置的图例教程,但是本文章不介绍这些,关于配置资料已经很多了,本文章的目的是让大家了解整个发布过程。

安装jenkins的服务器本文称为:发布机器

运行项目代码的服务器本文称为:项目机器

jenkins就是基于 “发布机器”与“项目机器”间的ssh免密登陆,然后通过scp或者rsync同步到各个项目机器,如果还有shell脚本等就再执行shell。

配置流程简述

  • 在Push Over SSH插件中(系统管理-> 系统配置-> Publish over SSH),需要配置 “发布机器”的私钥信息,以及N台项目机器的配置信息(机器name、ip、ssh免密用户名,项目代码路径等)
  • 配置一个新项目,jenkins中称为Item,  配置中需要注意的点为:

          # 构建(Build) 对于php项目而言,可以在这直接执行 代码发布+shell,这种情况一般用于 直接发布代码的模式

         # 对于需要代码回滚的php项目,“构建”这步可以执行代码备份,或者将rollback版本的代码覆盖到jenkins的workspace中,linux下默认为:/var/lib/jenkins/workspace, 然后在 “构建后操作” 中在执行发布+shell执行等。这种情况可以把 “构建”理解为 pre-publish 即:发布预准备

        # 发布过程中的细节,如要过滤传输的文件等,直接在ssh servers(项目机器集群)中的Transfer Set中进行配置

  • 为每个项目分配角色,这样不同的项目组成员各自管理自己的项目,关键配置就是:Manage and Assign Roles->Manage Roles 中 配置各个项目role的全局Global roles,一般给“任务” tag的read权限,然后核心就是Item roles中给各自的role通过正则指定项目名称。

 

 

<think>好的,用户想了解如何使用Jenkins部署PHP项目的指南或教程。首先,我需要回忆Jenkins的基本使用流程,以及PHP项目部署的特殊需求。Jenkins是一个持续集成和持续部署的工具,通常用于自动化构建、测试和部署。PHP项目可能涉及代码拉取、依赖安装、测试执行和部署到服务器等步骤。 首先,用户可能需要安装Jenkins。根据引用[2],如果Jenkins需要认证,可能需要配置SSH公钥来使用CLI。不过用户可能更倾向于使用图形界面,所以应该包括通过GUI配置的方法。 接下来,配置Jenkins的步骤可能包括安装必要的插件,比如Git插件用于代码拉取,PHP相关的插件如PHPUnit进行测试,以及可能用于部署的插件如Publish Over SSH。然后,用户需要创建一个新的任务,选择自由风格项目,配置源码管理,比如Git仓库地址,这里需要确保Jenkins服务器有权限访问该仓库。 然后是构建触发器的设置,用户可能希望代码推送时自动触发构建,所以需要配置Webhook,比如GitHub的Webhook指向Jenkins的触发器URL。构建环境部分可能需要配置PHP版本,安装Composer依赖,这里需要确保服务器上安装了PHP和Composer,并且在构建步骤中执行composer install。 测试部分,用户可能需要运行PHPUnit,所以构建步骤中添加执行shell命令,运行测试。部署阶段,可能需要将构建后的文件传输到生产服务器,可以使用Publish Over SSH插件,或者使用rsync命令。此外,可能需要执行服务器上的部署脚本,比如清理缓存、重启服务等。 根据引用[1],提到了Jenkins的config.xml配置,但用户可能更关注实际操作步骤,而不是直接修改配置文件。引用[2]提到认证和SSH配置,这可能与部署时的权限有关,需要确保Jenkins有权限访问目标服务器。引用[3]提到Docker EE,但用户的问题是关于PHP部署,可能不需要Docker,不过如果有容器化部署的需求,可能需要额外步骤。 用户可能需要分步指南,包括安装、配置、构建、测试、部署的具体命令和截图。同时,需要检查是否有遗漏的步骤,例如环境变量的配置、敏感信息的处理(如数据库密码),以及如何处理部署失败的情况。 最后,生成的相关问题需要围绕用户可能的后续疑问,比如如何配置Webhook、处理依赖、优化部署流程等。</think>### 如何使用Jenkins部署PHP项目的分步指南 #### 1. **环境准备** - **安装Jenkins** 确保服务器已安装Java环境(Jenkins依赖),然后通过官方包管理工具安装Jenkins[^2]。 ```bash # Ubuntu示例 sudo apt install openjdk-11-jdk wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt update && sudo apt install jenkins ``` - **配置SSH访问(可选)** 如果使用SSH密钥认证部署到远程服务器,需在Jenkins用户目录(如`/var/lib/jenkins/.ssh/`)配置SSH密钥。 #### 2. **安装必要插件** 进入Jenkins管理界面(`http://<jenkins-ip>:8080`),安装以下插件: - **Git Plugin**:用于从Git仓库拉取代码。 - **Publish Over SSH**:将构建产物传输到目标服务器。 - **PHP**:提供PHP环境配置支持。 - **Workspace Cleanup**:清理构建残留文件。 #### 3. **创建新任务** - **任务类型**:选择“自由风格项目”。 - **源码管理**:配置Git仓库地址和凭据。例如: ```plaintext Repository URL: git@github.com:yourname/php-project.git Branch: main ``` #### 4. **配置构建触发器** - **Webhook自动触发** 在Git仓库(如GitHub)中设置Webhook,指向Jenkins的触发URL(如`http://<jenkins-ip>:8080/github-webhook/`)。 #### 5. **构建环境与步骤** - **PHP环境配置** 在“构建环境”中选择“Provide PHP environment”,指定PHP版本(需提前在服务器安装)。 - **依赖安装与测试** 添加“执行Shell”步骤: ```bash composer install --no-dev --optimize-autoloader phpunit --bootstrap vendor/autoload.php tests/ ``` #### 6. **部署到服务器** - **使用Publish Over SSH插件** 1. 在Jenkins系统设置中配置目标服务器的SSH连接信息(IP、端口、密钥)。 2. 在任务中添加“Send files or execute commands over SSH”步骤: ```plaintext Source files: **/* (匹配所有构建产物) Remove prefix: workspace/ (根据实际路径调整) Remote directory: /var/www/html/ Exec command: cd /var/www/html && chmod -R 755 storage && systemctl restart php-fpm ``` #### 7. **保存并触发构建** 手动执行一次构建,观察日志确认流程是否成功。 --- ### 关键问题与优化 - **依赖冲突**:若`composer install`失败,可尝试`composer update --no-dev`。 - **权限问题**:确保Jenkins用户(如`jenkins`)对目标目录有写权限。 - **回滚机制**:结合Git标签或备份目录实现快速回滚。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值