## 1、环境安装

### 1.1 安装docker运行环境redis
*  centos8安装docker 教程：```https://www.cnblogs.com/lhd1998/p/13297229.html```
* docker安装redis
	* 下载redis镜像 ```docker pull redis```
 	* 运行redis 

	```
	docker run -p 6379:6379 -v $PWD/data:/data -d redis redis-server --appendonly yes --requirepass "123456"
	```
### 1.2 安装mysql数据库
   * 拉取镜像 ```docker pull mysql:5.7```
   * 查看镜像 ```docker images```
   * 启动mysql容器 
   
       ```-v /mydata/mysql/log:/var/log/mysql \
       -v /mydata/mysql/data:/var/lib/mysql \
       -v /mydata/mysql/conf:/etc/mysql \
       -e MYSQL_ROOT_PASSWORD=123456 \
       -d mysql:5.7
       ```
   * 进入容器

  		```docker exec -it mysql /bin/bash```
   * 配置MySQL
		```
		//进入挂载数据卷 包含 conf、data、logs目录
		cd /mydata/mysql/ 
		//进入配置文件目录
		cd conf/
		
	
		```
   * 创建MySQL配置文件
	   * 配置文件权限不允许设置为777, 配置为777, mysql在启动时会自动忽略该配置文件(Warning: World-writable config file ‘/etc/my.cnf’ is ignored)，应将配置文件权限设置为644 ```chmod 644 my.cnf```。 
		
		```
		cat > my.cnf <<-EOF
		[client]
		default-character-set=utf8
		[mysql]
		default-character-set=utf8
		[mysqld]
		init_connect='SET collation_connection = utf8_unicode_ci'
		init_connect='SET NAMES utf8'
		character-set-server=utf8
		collation-server=utf8_unicode_ci
		skip-character-set-client-handshake
		skip-name-resolve
		EOF
		```
   * 重启MySQL容器
        
        ```
        docker restart mysql
        ```
   * 进入容器确认配置
		
		```
		docker exec -it mysql /bin/bash
		cd /etc/mysql/
		cat my.cnf
		```
   * Docker启动容器自启

		```
		docker update mysql --restart=always
		```

### 1.3 安装jdk1.8
   * 从百度网盘下载jdk1.8的压缩包上传到服务器上
   * 解压路径 ```/usr/java/jdk1.8.0_221```
   * 在路径```/etc/profile```添加以下配置

    	```
    	export JAVA_HOME=/usr/java/jdk1.8.0_221
    	export PATH=$JAVA_HOME/bin:$PATH
    	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
    	```
   * 执行命令 ```source /etc/profile```
   * 查看是否安装成功 ```java -version```
### 1.4 安装nginx 
   * 教程 ```https://www.cnblogs.com/jiehao-yu/p/14754780.html```
   * 安装路径```/usr/local/nginx```
   * 进入/usr/local/nginx/sbin目录 ```cd /usr/local/nginx/sbin```
   * 停止nginx ```./nginx -s stop```
   * 重启nginx ```./nginx -s reload```
   * 启动nginx ```./nginx```
   * 前端文件路径 ```/usr/local/nginx/dist```
   * 如果提示一下错误
     * ```nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)```
     * 1.修改nginx.conf中pid ```pid /usr/local/nginx/logs/nginx.pid```
     * 2.创建logs文件夹
     * 3.在sbin目录下执行 ```./nginx```
   * nginx安装命令

   	    ```
   	    ./configure \
   	    --prefix=/usr/local/nginx \
   	    --pid-path=/var/run/nginx/nginx.pid \
   	    --lock-path=/var/lock/nginx.lock \
   	    --error-log-path=/var/log/nginx/error.log \
   	    --http-log-path=/var/log/nginx/access.log \
   	    --with-http_gzip_static_module \
   	    --http-client-body-temp-path=/var/temp/nginx/client \
   	    --http-proxy-temp-path=/var/temp/nginx/proxy \
   	    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
   	    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
   	    --http-scgi-temp-path=/var/temp/nginx/scgi \
   	    --with-http_stub_status_module \
   	    --with-http_ssl_module \
   	    --with-file-aio \
   	    --with-http_realip_module
   		```
### 1.5  防火墙设置
  * 注意：阿里云默认关闭，开放端口后需要配置安全组
  * 教程 https://www.cnblogs.com/superming/p/11315634.html
  * 查看防火墙 ```sudo systemctl status firewalld```
  * 关闭防火墙 ```sudo systemctl stop firewalld```
  * 打开防火墙 ```sudo systemctl start firewalld```
  * 开放80端口 ```firewall-cmd --zone=public --add-port=443/tcp --permanent```
  * 重启 ```firewall-cmd --reload```
  * 查看端口 ```firewall-cmd --list-port```
* 配置 https
  * 开放443端口 
	
	```firewall-cmd --zone=public --add-port=443/tcp --permanent```
  * 安全组中添加443
  * nginx配置文件
* 测试环境开放的端口
  * 开放80端口 ```firewall-cmd --zone=public --add-port=80/tcp --permanent```
  * 开放443端口 ```firewall-cmd --zone=public --add-port=443/tcp --permanent```
  * 开放3306端口 ```firewall-cmd --zone=public --add-port=3306/tcp --permanent```

## 2、服务运行

* 服务路径
    * 后台接口路径 ```http://39.108.56.127:8800/doc.html```
    * 前端登录 ```http://39.108.56.127:1888/```
