1. 简介
目录分为两个部分,”01资料”主要是相关文档和录屏介绍,”02项目”是前后端的代码和压缩包。
接下来主要会修改相关的配置文件。
2. 准备环境
在服务器上安装好nginx、mysql8(必须mysql8)、redis。
2.1 安装nginx
nginx作用:发布前端文件(静态文件)
# 使用源码编译安装的方式来安装nginx1、安装nginx需要的依赖yum -y install gcc-c++ pcre-devel zlib-devel2、上传nginx源代码到/opt目录3、解压缩cd /opttar zxvf nginx-1.19.1.tar.gz4、安装cd /opt/nginx-1.19.1./configure && make && make install5、启动nginx/usr/local/nginx/sbin/nginx至此,nginx安装完毕注:1、确认是否安装并启动成功,可以访问http://ip(ip为你linux机器的ip地址),看到welcome即可。2、nginx对外服务端口默认为80
注:如果不成功1、关闭防火墙: systemctl stop firewalld2、如果没有IP地址:修改网络的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33关闭网络管理的服务: service NetworkManager stop开机不自动启动服务: chkconfig NetworkManager off重启网络服务: service network restort 如启动失败,需要重启计算机。 如果还是没有网络

2.2 安装docker
1、卸载旧版本(如果安装过旧版本的话)yum remove docker docker-common docker-selinux docker-engine2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm23、设置yum源# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4、安装docker引擎yum install -y docker-ce5、启动docker并把docker加入开机启动systemctl start dockersystemctl enable docker6、配置docker镜像加速器vi /etc/docker/daemon.json然后添加如下内容:{"registry-mirrors": ["http://hub-mirror.c.163.com","https://reg-mirror.qiniu.com"]}7、重启dockersystemctl restart docker至此,docker安装完毕。
2.3 docker安装mysql8
1、拉取镜像文件docker pull mysql:8.02、运行MySQL容器(把容器的3306端口映射到linux主机的3307端口,最后连接mysql通过3307端口来连接。因为主机的3306端口可能被占用)docker run -d -p 3307:3306 --privileged=true -v /docker/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wch@1234 --name mysql8 mysql:8.0 --lower_case_table_names=1# docker run -d -p 3307:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 --name mysql8 mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci# docker run -di --name=mysql8 -v /docker/mysql8/data:/var/lib/mysql -v /docker/mysql8/conf/my.cnf:/etc/mysql/my.cnf --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=baihe@1234 mysql --lower_case_table_names=13、查看容器iddocker ps -a注意:此命令显示所有docker容器docker ps# 此命令显示正在运行的docker容器如下图,有两个容器id,一个为redis,一个为mysql84、进入mysql8容器docker exec -it 容器id bash (注:容器id通过docker ps -a获取,每个人执行命令出来的结果不一样)docker exec -it mysql8 bash5、在容器中操作mysql,使用mysql客户端mysql -uroot -p回车,输入密码baihe@1234,进入6、修改远程连接密码ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'baihe@1234';7、退出mysqlexit8、退出容器exit9、使用navicat去连接mysql8.注意端口为.能连接成功则表示mysql8正常。
备注:mysql5.7授权命令
Grant all on *.* to 'root'@'%' identified by 'root用户的密码' with grant option;flush privileges;vmtsji9700@sandbox.com/111111
2.4 docker安装redis
1、拉取镜像文件docker pull redis2、创建一个目录用于存储redis的文件mkdir -p /docker/redis/data3、把目录访问权限设置为任何人都可以访问chmod -R 777 /docker/redis/data4、切换目录cd /docker/redis5、下载redis.conf配置文件wget http://download.redis.io/redis-stable/redis.conf6、修改配置文件vi redis.conf75行前面加上# - 注释掉 bind 127.0.0.194行yes修改为no - 把protected-mode yes 修改为protected-mode no7、保存退出8、启动redis容器# -p 端口映射。第一个6379指的是linux的端口,第二个6379指的是docker容器的端口docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf9、进入客户端docker exec -it redis /bin/bashdocker exec -it 容器id redis-cli
3. his项目后端配置
3.1、修改配置文件,对com-medical-hospital-1.0-SNAPSHOT.jar点右键,使用压缩文件打开。切记:不要双击!不要双击!不要双击!( com-medical-hospital-1.0-SNAPSHOT.jar\BOOT-INF\classes\application.properties )

3.2、打开后进入BOOT-INF\classes。application.properties即为项目的配置文件。其中可以配置服务端口,数据库链接,redis链接

3.3、双击application.properties,使用记事本打开。注意:如果按照文档以上各步骤来做,此文件可以不用修改

3.4、修改后保存,关闭,选择是
3.5、发布后端项目
1、linux创建目录mkdir -p /home/his2、上传修改后的com-medical-hospital-1.0-SNAPSHOT.jar包到/home/his3、切换目录cd /home/his4、启动后端项目nohup java -jar com-medical-hospital-1.0-SNAPSHOT.jar &注意:nohup:表示程序运行的日志输出到nohup.out文件java -jar com-medical-hospital-1.0-SNAPSHOT.jar :表示使用java命令来执行com-medical-hospital-1.0-SNAPSHOT.jar-jar 制定文件类型为jar。&:表示在后台运行命令,不挂断运行命令,当账户退出或终端关闭或CTRL+C时,程序仍然运行5、查看后端服务日志tail -f nohup.outctrl+c退出
4. his前端配置
注:前端需要自己编译,编译工具为node,请自行安装。node-v12.19.0-x64.msi或node-v16.3.0-x64.msi
4.1、打开 02_项目\pro_hosiptal\src\main.js,修改baseURL的值为服务器IP(linux机器ip),端口和后端jar包里的server.port一致即可。注意:这里不能填写localhost或127.0.0.1,必须填写具体IP。
4.2、在windows上安装nodejs工具,以便后续生成前端文件,一直下一步即可。
4.3、打开cmd,进入pro_hosiptal目录,运行命令:npm run build
4.4、等待,最后出现“Build complete.”即可。
4.5、此时再进入pro_hosiptal目录,dist目录被重新生成,这就是可运行的前端文件。
4.6、进入dist目录。把目录中所有的文件和文件夹上传到linux的/usr/local/nginx/html目录中即可。
4.7、至此,整个项目部署完毕。测试方式,浏览器输入http://ip ,(linux的ip地址)
用户名:yz01
密码:123456
注:水务系统的后端接口地址配置修改在“02_项目\water\src\components\axios\request.js”此文件中
5. 虚拟机重启后的项目启动
注意:虚拟机重启后如果ip地址有变更,则”4、前端配置“需要重新做一次,后端服务不用修改。
1、获取mysql8和redis容器iddocker ps -a2、启动mysql8和redis容器docker start mysql8的容器iddocker start redis的容器id3、启动java后端服务cd /home/hisnohup java -jar com-medical-hospital-1.0-SNAPSHOT.jar &4、启动nginx/usr/local/nginx/sbin/nginx5、关闭防火墙:systemctl stop firewalld6、浏览器访问测试即可
6、java环境变量设置(备用)
先检查机器是否有自带的jdk
rpm -qa | grep jdk
使用以下命令删除所有openjdk
rpm -e —nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
删除完后再执行以下步骤
1、下载jdk-8u281-linux-x64.tar.gz2、上传jdk-8u281-linux-x64.tar.gz到linux的/usr/local目录3、解压缩cd /usr/localtar zxvf jdk-8u281-linux-x64.tar.gz4、修改profile文件vim /etc/profile在文件的最后增加如下行JAVA_HOME=/usr/local/jdk1.8.0_281export PATH=$JAVA_HOME/bin:$PATH5、重新加载profile文件source /etc/profile6、测试分别执行java和javac命令看到有Usage *****输出,则表示配置成功。
7、nginx配置(备用)
server { #此处发布医疗项目前端,对外端口80listen 80;server_name localhost;location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}server { #此处发布车辆管理项目,对外端口81listen 81;listen localhost:81;location / {root cars;index index.html index.htm;}}server { # 此处发布水务管理系统,对外端口82listen 82;listen localhost:82;location / {root water;index index.html index.htm;}}
8、docker容器时区修改为跟宿主机一致
docker容器时间用的是世界时间,即UTC,而国内的linux系统默认是中国标准时间CST,所以两者时间相差8小时,为了统一时间,docker容器需要执行以下命令来修改时间
1、先进入容器docker exec -it mysql8 bash2、删除docker容器的时间文件mv /etc/localtime /etc/localtime.bak3、设置中国时区ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
9、错误解决
WARNING: IPv4 forwarding is disabled. Networking will not work.
vi /etc/sysctl.conf
添加net.ipv4.ip_forward=1至末尾
重启network服务 systemctl restart network
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql8 (92e83a95c8c287d423c3f2cf39ba7f8358a5ed4e18ca2efc9194dd803f71be9f): (iptables failed: iptables —wait -t nat -A DOCKER -p tcp -d 0/0 —dport 3307 -j DNAT —to-destination
172.17.0.3:3306 ! -i docker0: iptables: No chain/target/match by that name.
重启docker服务
systemctl restart docker
