.netcore部署linux、国产化环境
前言:
本文基于 centos7.9 操作系统,服务器 x86/x64, 所有操作在虚拟机中操作,记录部署过程中出现的问题,在此记录解决方案。
查看系统版本命令:
cat/etc/redhat-release
cat/proc/version
uname-m
df-Th
fdisk-l
其他系统可能略有不同,参照博客 https://www.cnblogs.com/zwbsoft/
注意:本文所有 yum 方式为在线安装,并且使用 yum install -downloadonly 命令下载离线包,确保无网络进行安装
yum install -downloadonly-downloaddir=/tmp<package-name>
需要安装项目如下
donet 环境,NGINX 服务,core 项目前后台,solr 服务,solr 推送,报表打印,统计功能,转换 PDF,MongoDB 数据库,mysql 数据库。
1. 安装操作系统
如果客户机没有安装系统,需自行下载镜像制作 U 盘,在此不再赘述
然后再系统中用 U 盘启动进行安装
注意事项 1:安装时一定要先设置网卡,否则不会自动安装。
注意事项 2:如果想直接在服务器上操作图形界面,安装时选择图形选项
2. 远程环境
2.1 xshell
正常情况下,默认可以直接使用 22 端口进行 ssh 连接
2.2 vnc-viewer
如果 centos 系统是最小化安装,需先安装 gnome desktop, 否则略过此步骤。
安装命令:yun groupinstall -y GNOME Desktop
安装完成启动图形化界面 :systemctl set-default graphical.target
执行以下命令安装 vnc 服务
yum install tigervnc -y
通过命令:rpm -ga|grep tigervnc-server 验证是否安装成功
安装完成后输入命令 vncserver, 第一次启动需要输入密码,按操作提示即可,密码设置后会出现如下信息,如图
从图中看出桌面号为 1
启动 vnc-viewer 新建一个连接,输入 ip 地址:桌面号
添加完成后,双击添加的桌面,输入之前的密码,完成登录
如果连接超时,请关闭防火墙或开放端口
防火墙关闭命令:systemctl stop firewalld service
禁止防火墙关机自启动:systemctl disable firewalld service
添加防火墙例外:firewall-cmd --zone=public -add-port=5901/tcp -permanent
重启防火墙:firewall-cmd --reload
查看例外端口:firewall-cmd --list-port
3. 环境部署
3.1 文件传输
通过 xshell 连接后,cd 进入保存文件的文件夹,使用 rz 命令进行上传。
3.2 安装 dotnetcoresdk
3.2.1 首先将压缩包上传到服务器
3.2.2 解压缩
mkdir -p/app/dotnet/netcore3.1
tar zxf dotnet-sdk-3.1.404-linux-x64-tar.gz -C app/dotnet/dotnet3.1
3.2.3 创建软连接
sudo ln -s /app//dotnet/dotnet3.1/dotnet /usr/local/bin
3.2.4 测试安装结果
dotnet --version
默认情况 Centos 7 中无 Nginx 的源, 可以如下执行命令添加源:
确认添加成功:
3.3.2 配置 nginx
使用命令修改配置文件
vim/etc/nginx/conf.d/conf.d/default.conf
在下图高亮部分设置端口号,服务 ip 地址,及前端项目路径及日志路径
将下图高亮部分修改为:
location/{
root / usr/share/nginx/html;
try files Suri Suri /@ router;
}
location @ router{
rewrite ^ .*$/ index.html last :
}
设置完成后重启服务 systemctl restartnginx.service
查看服务状态 systemctl status nginx.service
设置开机启动
systemctl enable nginx.service
3.4 安装配置 mysql
3.4.1 检查是否存在 Mariadb
卸载 Mariadb
rpm -e --nodeps mariadb-libs
在最后添加一行:
同时修改 datadir 为指定路径
groupadd mysgl .
启动 mysql 并配置开机自启
systemctl start mysqld
systemctl enable mysgld .
如果遇到初始化失败, 一般为 selinux 的问题, 执行命令手动关闭:
查看密码并重置
查看密码:grep 'temporary password' var/log/mysqlId.log
使用密码登录
修改密码校验规则与密码长度:
mysql >set global validate password.policy =0
mysql >set global validate password.length =1
修改允许远程连接:
mysql>update mysql user set host =%'where user ="root";
mysql >flush privileges ;
使用第三方工具进行登录
登录成功后新建数据库
初始化脚本:
3.5 安装配置 MongoDB
3.5.1 安装 MongoDB
把压缩包考入
解压压缩包:
cd / app/mongodb/bin/
在 mongodb 控制台新建数据库:
第三方软件看到效果
注: 如客户要求建立 mongodb 账户, 并且使用账户登录数据库, 请自行百度教程。
3.6 安装配置 solr
将 baseurl 和 baseurlLocal 指向后端程序的 P 和端口
4.2 后端服务部署配置
将文件放入需要部署的文件夹下并解压, 修改配置文件 appsettings.ison
主要修改内容为: 数据库类型、数据库连接地址、数据库名、之前设置的账号密码、solr 的 ip 地址 Mongodb 不需要在此处设置, 直接读取数据库内配置
4.3solr 推送服务部署配置
主要修改内容为: 数据库类型、数据库连接地址、数据库名、之前设置的账号密码、solr 的 iP 地址。Mongodb 不需要在此处设置, 直接读取数据库内配置。
配置完成后在项目文件夹下使用如下命令开启服务:dotnet ConsoleApp1
注 1: 在执行 OCR 识别时可能会提示缺少 > libdl..so, 使用 whereis 命令查询一下系统的此文件, 路径, 使用 mv 命令把文件拷贝到 solr 推送程序的 runtimes // linux-64/native 下可以解决问题
注 2: 在执行 OCR 识别时可能会提示找不到 liblept 1760.so 和 libtesseract 400.so 文件, 这是因为 Linux 发行版本不同, 需要单独编译的文件, 将文件拷贝到 solr 推送程序的 X64 文件夹下可以解决问题。
注 3: 建议图形界面登录系统后开启一个终端窗口执行此命令,xshell 执行关闭连接后会关闭, 此时需要使用 nohup 启动进程 nohup dotnet ConsoleApp 1.dll>/dev/null2>log&, 具体详情请百度。
4 性能监控服务部署配置
将文件放入需要部署的文件夹下并解压, 修改配置文件 appsettings.json
主要修改内容为: 数据库类型、数据库连接地址、数据库名、之前设置的账号密码
配置完成后在项目文件夹下使用如下命令开启服务:dotnet PerformanceAPI.dll
注: 图形界面登录系统后开启一个终端窗口执行此命令,xshell 执行关闭连接后会关闭, 此时需要使用 nohup 启动进程 nohup dotnet ConsoleApp 1.dll>/dev/null2>log&, 具体详情请百度。
主要修改内容为: 数据库类型、数据库连接地址、数据库名、之前设置的账号密码
配置完成后在项目文件夹下使用如下命令开启服务:dotnet WebDesigner MVC'(Core')'.dll --urls http://*58721
注: 图形界面登录系统后开启一个终端窗口执行此命令,xshell 执行关闭连接后会关闭, 此时需要使用 nohup 启动进程 nohup dotnet WebDesigner MVC'(Core')'.dll --urls http://*58721>/dev/null2>log&, 具体详情请百度。