部署环境搭建--面向实施.md 6.61 KB
Newer Older
王进波's avatar
王进波 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Web部署环境搭建](#web%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA)
  - [简介](#%E7%AE%80%E4%BB%8B)
  - [更新前配置](#%E6%9B%B4%E6%96%B0%E5%89%8D%E9%85%8D%E7%BD%AE)
  - [全新部署](#%E5%85%A8%E6%96%B0%E9%83%A8%E7%BD%B2)
  - [更新部署](#%E6%9B%B4%E6%96%B0%E9%83%A8%E7%BD%B2)
    - [ConfCenter在CivWebPublish内部](#confcenter%E5%9C%A8civwebpublish%E5%86%85%E9%83%A8)
      - [ConfCenter为文件夹](#confcenter%E4%B8%BA%E6%96%87%E4%BB%B6%E5%A4%B9)
      - [ConfCenter是符号链接](#confcenter%E6%98%AF%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5)
    - [ConfCenter在CivWebPublish同级](#confcenter%E5%9C%A8civwebpublish%E5%90%8C%E7%BA%A7)
  - [站点更新操作](#%E7%AB%99%E7%82%B9%E6%9B%B4%E6%96%B0%E6%93%8D%E4%BD%9C)
  - [辨别符号链接](#%E8%BE%A8%E5%88%AB%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5)
  - [更新-2018-12-05: gitlab 使用 ssh 协议](#%E6%9B%B4%E6%96%B0-2018-12-05-gitlab-%E4%BD%BF%E7%94%A8-ssh-%E5%8D%8F%E8%AE%AE)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

20 21 22 23 24 25 26
# Web部署环境搭建
edited by 王进波 2018.08.23

## 简介

web 部署环境包括两个部分:

王进波's avatar
王进波 committed
27
	1)应用程序库,即CivWebPublish;
王进波's avatar
王进波 committed
28
	
王进波's avatar
王进波 committed
29
	2)配置中心库,即ConfCenter
30 31 32 33 34 35 36

分别对应了两个Git仓库,部署时需要分别clone。

CivWebPublish对ConfCenter存在依赖关系,先下载ConfCenter库,ConfCenter与CivWebPublish要在同一级目录下,过去ConfCenter是在CivWebPublish文件夹内的,现在拿出来了。

![1534990158267](../imgs/1534990158267.png)

王进波's avatar
王进波 committed
37 38 39 40 41 42
## 更新前配置

```shell
git config --global credential.useHttpPath true		#配置Git保存验证信息时,允许保存Url的详细路径
```

43 44 45 46 47 48 49 50 51 52 53 54 55 56


## 全新部署

如果机器上没有部署过上述两个Git仓库,则认为是全新部署。

全新部署步骤如下:

1. `clone` ConfCenter配置中心库

   用管理员权限启动Cmd命令行,或者PowerShell,或者Git Bash,执行下述命令

   ```shell
   cd <folder name>	#导航到部署文件夹<folder name>下,如果是Cmd命令行,则cd 后面加上 /d 参数
王进波's avatar
王进波 committed
57
   git clone https://gitlab.wohitech.com/CivDevelope/ConfCenter.git	#clone ConfCenter
58 59 60 61 62 63 64 65 66 67 68
   
   #弹出验证窗口,口令:gitlab+deploy-token-10 密码:tPPy6xZxTU2SYqznimfx
   ```
   完成后先不要关闭命令行界面

2. `clone` CivWebPublish应用程序库

   在上面的命令行中继续执行下述命令

   ```shell
   git config --global core.symlinks true
王进波's avatar
王进波 committed
69
   git clone https://gitlab.wohitech.com/CivPublish/CivWebPublish.git
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
   
   #弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
   ```



## 更新部署

如果机器上已经部署过站点,则认为是更新部署。

更新部署根据部署环境中ConfCenter文件夹的位置分几种情况:

- ConfCenter在CivWebPublish内部,即早期ConfCenter文件夹放在CivWebPublish文件夹里面时部署的站点
- ConfCenter与CivWebPublish同级,即后来ConfCenter文件夹拿到CivWebPublish外面之后部署的站点

### ConfCenter在CivWebPublish内部

王进波's avatar
王进波 committed
87
辨别CivWebPublish内部的ConfCenter是文件夹还是符号链接,[辨别方法](#%E8%BE%A8%E5%88%AB%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5)
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

#### ConfCenter为文件夹

我们保留站点配置,重新clone应用程序库CivWebPublish,具体如下:

1. 将ConfCenter文件夹拷贝到CivWebPublish同级目录下

   ![1534990158267](../imgs/1534990158267.png)

2. 删除CivWebPublish并重新`clone`

   Cmd,或PowerShell,或Git Bash 需要管理员权限启动。

   ``` shell
   cd <folder name>	#导航到部署文件夹<folder name>下,如果是Cmd命令行,则cd 后面加上 /d 参数
   git config --global core.symlinks true
王进波's avatar
王进波 committed
104
   git clone https://gitlab.wohitech.com/CivPublish/CivWebPublish.git
105 106 107 108 109 110 111 112 113 114 115
   
   #弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
   ```

   `clone`完成后双击CivWebPublish下的ConfCenter符号链接,测试能否正确跳转。

#### ConfCenter是符号链接

如果ConfCenter已经是有效的符号链接,双击能正确跳转,则只需要在执行pull操作弹出验证窗口时输入正确的口令

```shell
王进波's avatar
王进波 committed
116
#CivWebPublish的远程仓库Url:https://gitlab.wohitech.com/CivPublish/CivWebPublish.git
117 118 119 120 121 122 123 124 125 126 127 128 129 130
#弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
```



### ConfCenter在CivWebPublish同级

ConfCenter文件夹与CivWebPublish同级,则删除CivWebPublish后重新Clone。

用理员权限启动Cmd,或PowerShell,或Git Bash

```shell
cd <folder name>	#导航到部署文件夹<folder name>下,如果是Cmd命令行,则cd 后面加上 /d 参数
git config --global core.symlinks true
王进波's avatar
王进波 committed
131
git clone https://gitlab.wohitech.com/CivPublish/CivWebPublish.git
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

#弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
```

`clone`完成后双击CivWebPublish下的ConfCenter符号链接,测试能否正确跳转。



## 站点更新操作

站点更新只需要更新CivWebPublish文件夹,ConfCenter是配置中心,不通过Git来更新。

更新步骤:

```shell
cd CivWebPublish	#导航到CivWebPublish目录,如果是Cmd命令行,则cd 命令后面加上 /d 参数
git status		#检查本地有没有文件被修改,如果显示有文件修改,则在本地提交修改
git add .
git commit -m "commit for pull"		#这两步提交本地修改

git pull	#从远程仓库拉取更新,检查输出结果是有错
```

王进波's avatar
王进波 committed
155
## 辨别符号链接 
156 157 158 159

- 符号链接的文件夹图标左下角有快捷方式的箭头

- 右键属性时可以看到这个文件的Shortcut(快捷方式)属性,并且能看到跳转目标(Target)![1534990439223](../imgs/1534990439223.png)
王进波's avatar
王进波 committed
160 161 162



王进波's avatar
王进波 committed
163
## 更新-2018-12-05: gitlab 使用 ssh 协议 
王进波's avatar
王进波 committed
164 165 166 167 168 169 170 171

> 最近实施部署 CivWebService 的时候出现 HTTP 协议的仓库地址 clone 代码出现中断的现象,暂时还没解决,但是可以用 ssh 协议的地址 代替 HTTP 协议地址进行下载,相对于过去部署的方式只有一个 url 的变化,过去 clone 的命令是 `git clone HTTP-URL` ,用 ssh 协议就是 `git clone SSH-URL`  ,但是用 ssh 协议需要进行一些设置,我写了文档,在[这里](./如何使用ssh协议获取gitlab仓库的代码.md)。 
>
> 然后之前部署的几个 http 协议的 URL 对应的 ssh 协议 URL 我写在下面,方便查阅
>
> - ConfCenter: `git@gitlab.wohitech.com:CivDevelope/ConfCenter.git` 
> - CivWebPublish: `git@gitlab.wohitech.com:CivPublish/CivWebPublish.git`