本来是发布到百度经验的,但是百度总是提示用词雷区,我去他妈的用词雷区!

原由

网上有教程,但是里面都有你踩不完的坑,不知道他们是有用心测试过还是简单的粘贴复制,不置评论了。这篇经验是我用阿里云ECS服务器搭建sscms环境的时候踩的坑。因为是先完成操作,没有进行截屏及录制视频,所以大家将就看吧,欢迎讨论。

开始吧

服务器更新:
ecs安装centos8.2版本(非阿里云也可以),centos8.2包管理已经开始使用dnf了,但是yum用习惯了。
阿里云安全组放行8888/888(后期生产环境可以更改,相应安全组规则也要进行更改才行)
#yum update
完成以后
#reboot
安装DotNet:
#yum search aspnetcore-runtime
(这是查找你的源里对应的netcore版本,sscms使用的还是3.1版本,插件开发的Nuget包用的2.0版本,但是微软升级到5.0了。这是为了让你明白以后的趋势。)
#yum install aspnetcore-runtime-3.1 -y
(安装DotNet3.1)
#reboot
搜狗截图20210119194920.png
安装BT面板:
#yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
(系统兼容性顺序:
Centos8.x > Centos7.x > Ubuntu18.04 > Debian10 > Ubuntu 20.04 > 其它系统,关于centos8将不再维护的问题,可以考虑阿里云自带的等保2.0的镜像,基于Redhat的,跟centos差不多,还是长期维护,至少阿里云不倒估计它也不会倒吧,再说人生不过几十年…..)
这里一定要注意保存bt的最后信息,例如:
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://45.23.15.36:8888/45dfa09b
内网面板地址: http://172.0.1.25:8888/45dfa09b
username: fdfg7sger
password: 0dffgsffgs
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
===========================================================
关于宝塔面板的其他操作可以去官网进行学习研究。
#reboot
重启

以下情况会出现在docker环境的时候,请注意防雷:
如果我是说如果你的宝塔安装完了刚开始可以使用bt,但是重启以后发现不行了,那么请使用以下sh命令:
#whereis bt
屏幕输出:
#bt: /usr/bin/bt
reboot完了之后使用/usr/bin/bt直接呼出面板,选择16进行修复。
#reboot
搜狗截图20210119195126.png

配置宝塔环境:(这一步有可能会卡死,进ecs控制台强制重启即可,接着再安装,或者不用一键安装,可以自己到宝塔应用商店单独安装。)
1、Nginx1.18.0(1.19.0我遇到了未知错误,1.18还是相对稳妥)
2、MySQL5.6或者5.7(内存大于2G选5.7)
3、Redis6.0.10(sscms分布式缓存用)
4、PHP7.3(phpmyadmin用,也可以不装,使用sscms数据库插件)
5、phpmyadmin5.0(可用可不用,sscms有一个数据库管理插件)
6、Supervisor管理器 2.2(用于管理DotNet进程)
搜狗截图20210119200233.png

安装完了记得重启
#reboot
当然你也可以按照我图片上的软件进行配置运行环境需要的软件。

ssl配置(非必须,大环境建议配置上。如果不先配置这个,往后估计很难通过验证,我试过了两天都没有ssl成功,于是我把这个步骤提前了,纯属友情提示。)

1、宝塔新建一个网站(www.yourdomain.com),域名必须解析且建议完成了备案,其他的不在这里讨论。)
搜狗截图20210119200815.png
2、按图添加域名、设置数据库、纯静态即可
3、申请Let’sEncrypt免费证书(土豪或特殊用户除外)
搜狗截图20210119201106.png
这一步一定要走在DotNet5000端口反向代理之前,至于为什么我也不知道到,我只知道这一步不先完成,我的ssl验证不了,知道具体原因的请告知。

配置DotNet:
1、点击刚才建立的网站,选择添加反向代理。(此步骤不可以添加到Nginx服务器配置文件,只可以添加到这个sscms站点的Nginx配置里面,切记!)
配置文件中添加以下内容:

搜狗截图20210119201557.png
#sscms5000端口反向代理
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
#sscms反向代理完成
完了之后Nginx重载配置,并重启Nginx服务。

2、用宝塔文件管理,进入到站点的根目录,远程下载sscms最新版的linux安装包(有两个不要下到macOS的了),解压在根目录即可。

3、添加DotNet sscms-web.dll守护进程
宝塔中的supervisor打开,添加守护进程,启动用户名必须拥有足够的权限,建议root,运行目录就是你的SSCMS.Web.dll文件所在的目录,启动命令dotnet SSCMS.Web.dll(注意空格,是一条sh 命令)。
搜狗截图20210119202119.png

4、进宝塔的网站管理站点,设置网站的运行目录为该网站的wwwroot目录。
搜狗截图20210119204604.png

5、每次重启ecs以后记得检查一下这个守护进程是否启动,如果没有启动就把DotNet sscms.web.dll 做成开机启动。(我的想法是维护服务器反正要进入宝塔面板,所以就直接在宝塔面板里维护了,如果不喜,可以参考官网文档增加开机启动服务,但是宝塔就不要做重复操作了,不然你会很尴尬:两个进程无法同时启动这是根本原因。)

重启服务器。记得重启服务器!

最后一步:
1、进入宝塔面板检查DotNet是否启动,如果没有启动请启动。
2、浏览器打开你的网址进行sscms的安装和配置【如果出现报错或者空白(一般是选择了Redis缓存的问题,重启服务器或者等5分钟刷新再试)】
3、enjoy it !