<!-- 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)
  - [全新部署](#%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)
- [symlink](#symlink)

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

# Web部署环境搭建
edited by 王进波 2018.08.23

## 简介

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

	1)应用程序库,即CivWebPublish;

	2)配置中心库,即ConfCenter

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

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

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

## 更新前配置

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



## 全新部署

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

全新部署步骤如下:

1. `clone` ConfCenter配置中心库

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

   ```shell
   cd <folder name>	#导航到部署文件夹<folder name>下,如果是Cmd命令行,则cd 后面加上 /d 参数
   git clone https://civgit.vicp.net:8443/CivDevelope/ConfCenter.git	#clone ConfCenter
   
   #弹出验证窗口,口令:gitlab+deploy-token-10 密码:tPPy6xZxTU2SYqznimfx
   ```
   完成后先不要关闭命令行界面

2. `clone` CivWebPublish应用程序库

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

   ```shell
   git config --global core.symlinks true
   git clone https://civgit.vicp.net:8443/CivPublish/CivWebPublish.git
   
   #弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
   ```



## 更新部署

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

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

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

### ConfCenter在CivWebPublish内部

辨别CivWebPublish内部的ConfCenter是文件夹还是符号链接,[辨别方法](#%E8%BE%A8%E5%88%AB%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5)

#### 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
   git clone https://civgit.vicp.net:8443/CivPublish/CivWebPublish.git
   
   #弹出验证窗口,口令:gitlab+deploy-token-7 密码:jnzGBwuvRvNtxJqSExgV
   ```

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

#### ConfCenter是符号链接

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

```shell
#CivWebPublish的远程仓库Url:https://civgit.vicp.net:8443/CivPublish/CivWebPublish.git
#弹出验证窗口,口令: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
git clone https://civgit.vicp.net:8443/CivPublish/CivWebPublish.git

#弹出验证窗口,口令: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	#从远程仓库拉取更新,检查输出结果是有错
```



# 辨别符号链接

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

- 右键属性时可以看到这个文件的Shortcut(快捷方式)属性,并且能看到跳转目标(Target)![1534990439223](../imgs/1534990439223.png)