PHP项目发布流程

技术文档网 2021-04-15

本文档描述了整个发布周期应该遵守的规范,统一和规范发布流程,提高发布效率,减小发布过程中可能出现的问题。

整体开发和发布的流程

开发同学在自己的本地开发和自测 -> 同步代码到测试环境测试 -> 发布到预发布验证 -> 发布到线上

开发环境准备

目前我们使用yii2框架进行开发,使用svn管理代码,使用deployer发布,所以需要在自己的机器上安装svn, deployer,由于在部署测试环境的环节使用了rsync,所以还需要安装cygwin环境才能使用。

###安装cygwin

下载地址:https://cygwin.com/setup-x86.exe。

下载后按提示安装,在选择软件包的时候,需要确认将rsync勾选,然后安装。

安装成功后会在桌面生成一个快捷方式,双击即可打开,打开后可以通过执行rsync命令测试是否安装成功。

###安装deployer

下载地址:http://deployer.org/deployer.phar。

下载后,将deployer.phar改名为dep放到cygwin的bin目录下。

启动cygwin,执行dep命令,测试是否安装成功。

发布

###部署测试环境

将代码同步的测试环境时,先在cygwin环境下进入到本地的项目目录,然后执行

dep rsync

该命令会使用rsync将代码直接部署到测试环境,避免每次都上传大量的文件,同会同步有改功的文件。

###部署到预发和线上环境

线上和预发环境保持一致的配置,使用相同的数据库源,在部署到预发和线上环境时,需要先提交代码到trunk上,发布使用如下命令:

发布到预发环境

dep release pre

发布到线上环境

dep release prod

部署到预发和线上环境除了服务器的ip地址不同,其它完全相同,该命令将会执行下面几个步骤

  1. 登录到对应的服务器上
  2. 将svn trunk上的代码打tag,tag的名称为当天日期,如20160623
  3. 将对应的tag版本导出到服务器的临时目录下
  4. 执行环境初始化脚本,将environment目录的配置复制到对应目录下
  5. 将准备好的代码rsync到部署目录
  6. 删除临时目录

###注意事项

为了减少发布中出现的问题,配置文件做了如下规范

  1. db,cache,redis的配置应该在common/config/main-local.php中,不能放到其它文件中。
  2. log的配置在各个模块的config/main.php中,除非有特殊需求,否则请不要修改。
  3. 在本地测试时,统一使用mysql的root空密码来连接,防止由于开发环境不一样导致开发的配置文件不同。
  4. 在需要增加配置信息时,如果配置是根据环境变化的,请写到main-local.php中,参数写到param-local.php中,并需要同时修改environment目录下对应的文件。

相关文章

  1. 如何通过xhprof分析性能

    使用方法 xhprof_enable(); /** ... 要检查的php代码 ... **/ $xhprof_data = xhprof_disable(); // 引入xhprof_lib i

  2. LUMEN API Controller 规范

    1. 第三方依赖库规范 在使用LUMEN实现API接口时,以下库必须需要包含在composer包依赖中,以实现代码编写的一些规范 dingo/api : 实现API接口库 vlucas/phpdo

  3. PHP文件锁

    共享锁(LOCK_SH) 什么时候加共享锁? 当在读取数据的时候同时进行着其他的写操作,这个时候需要对文件加共享锁,否则无论有没有对写操作加写锁都会写入成功,导致数据不一致 当文件获得共享锁时,其他

  4. Hello-Risen-程序

    首先需要说明的是,您下载到的文件包含两部分,其中src中是开发源码,用于对Risen框架本身的开发,risen 目录中是通过源码生成的包含debug和release版本的框架程序,用于您应用程序的开发

  5. PHP自定义类示例(Weixin消息解析类)

    PHP自定义类示例(Weixin消息解析类) /** * Created by Qingger. * User: jsspf * Date: 2017/3/24 * Time: 10:50

随机推荐

  1. 如何通过xhprof分析性能

    使用方法 xhprof_enable(); /** ... 要检查的php代码 ... **/ $xhprof_data = xhprof_disable(); // 引入xhprof_lib i

  2. LUMEN API Controller 规范

    1. 第三方依赖库规范 在使用LUMEN实现API接口时,以下库必须需要包含在composer包依赖中,以实现代码编写的一些规范 dingo/api : 实现API接口库 vlucas/phpdo

  3. PHP文件锁

    共享锁(LOCK_SH) 什么时候加共享锁? 当在读取数据的时候同时进行着其他的写操作,这个时候需要对文件加共享锁,否则无论有没有对写操作加写锁都会写入成功,导致数据不一致 当文件获得共享锁时,其他

  4. Hello-Risen-程序

    首先需要说明的是,您下载到的文件包含两部分,其中src中是开发源码,用于对Risen框架本身的开发,risen 目录中是通过源码生成的包含debug和release版本的框架程序,用于您应用程序的开发

  5. PHP自定义类示例(Weixin消息解析类)

    PHP自定义类示例(Weixin消息解析类) /** * Created by Qingger. * User: jsspf * Date: 2017/3/24 * Time: 10:50