这段时间在vmare中尝试架设.netcore3.1运行环境搭配Nginx+Mysql进行站点架设,因为没有任何linux的相关使用经验,整体来说有些许不适
1、ICU包报错
首先出现的问题是环境都已经正常安装,但是运行站点时(dotnet App.dll)还是提示ICU包相关报错,解决方法如下:
先确定是否安装了完整的支持包
yum install libicu
yum -y install libicu-devel
yum install libunwind
如果确定安装后还是报错执行该命令:
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
2、出现大量404相关错误
站点成功执行后,发现有很多页面的路径已经无法正常读取,全部都在报404错误
经过诊断为:项目有些路径存在大小写未区分,但是Euler与windows不同,是区分大小写的,导致路径无法正常读取从而无法打开页面
解决方法为找到对应的文件进行修改,目前都是体量较小的项目,可以用此方法
3、无法访问数据库
而后出现了站点无法正确的访问mysql数据库的问题
经过诊断为:项目引用的sqlSugar包版本过旧,无法支持连接编码为utf-8mb4/3的数据库,需要将mysql的相关引用更新
至此三个影响站点的问题都已经解决
4、后台运行站点
在正式运行程序后发现整个命令行都被占用,无法进行别的操作,xshell之类的ssh工具运行的话一旦断开,站点也会跟着停止,为了解决这个问题,本来是打算用服务的方式,但是不知道因为什么原因,root权限一直提示因为权限问题无法执行,所以暂时使用了
nohup dotnet App.dll &
用该方法执行的站点启动将在后台执行,Xshell关闭也不会影响
关闭的方式如下
通过ps aux | grep App获取进程PID
[root@localhost manager]# ps aux | grep App
root 8525 1.7 0.3 71155716 205088 pts/1 Sl 14:19 0:04 dotnet App.dll
root 8744 0.0 0.0 22096 1536 pts/1 S+ 14:24 0:00 grep --color=auto App
通过PID kill
[root@localhost manager]# kill 8525