各位盆友好,我的某位好基友(PHP挨踢工程师)买了一台Ubuntu服务器,大半年之前问就我要不要用,(由于新冠肺炎疫情影响,其实是自己懒)闲置了好长一段时间;抽个时间搞搞Linux复习~看了下类似“Ubuntu部署.Net Core系统”方面的文章,还是有很多,细节需要自己把控,依葫芦画瓢还是能部署成功),写一写发布过程及遇到的问题分享一下,也当做一个.NET环境的小贡献
一:环境如下:
1.Ubuntu 服务器,版本:Ubuntu 18.04.4 LTS bionic;
2.Asp.NetCoreWebApi ,版本3.1;
3.Nginx,版本:nginx/1.14.0 (Ubuntu)
4.其它:ftp操作用的:FileZilla Client;然后就是SSH客户端Xshell(-不会的百度下-);
二:开始安装:
0.用ROOT账户登录系统; 检查Ningx是否安装,如果没有可以参考:
sudo apt-get install nginx 进行安装;启动命令:sudo service nginx start ;不做太多介绍,可以自行搜索下;
1.把NetCore程序所需环境搭好需要:( 可参考官方指南:Ms官方指南)
将Microsoft程序包签名密钥添加到受信任密钥列表中。
将存储库添加到包管理器。
安装所需的依赖项。
每台机器只需执行一次。在终端并运行以下命令:
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
2. 安装.NET Core SDK:
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1
3.检查FTP环境,看看ROOT账户能不能用FTP连上(包括创建文件夹上传下载);如果不能连,可以按照以下操作试一试:
启动SSH服务:ssh默认端口号是22,可以在 /etc/ssh/sshd_config 文件中修改(一般不用改);如果改了重启下:
sudo /etc/init.d/ssh restart
开启允许root用户远程登录,终端输入命令
sudo vim /etc/ssh/sshd_config
将:PermitRootLogin的注释去掉,然后将后面的参数值改为yes 也就是 PermitRootLogin yes;
然后重启:service sshd restart
就下来安装vsftp服务器:终端上输入 sudo apt-get install vsftpd 命令等待安装完成;
修改vsftpd.conf文件:sudo vim /etc/vsftpd.conf,将 #write_enable=YES 前面的注释#去掉,参考图如下:
然后更改/etc/ftpusers,注释掉root用户命令:sudo vim /etc/ftpusers 如图下:
在终端中重启FTP服务:sudo /etc/init.d/vsftpd restart 这时应该就可以使用了~
4.把项目发布文件放到这儿(可以自定义):
三:最后启动我们的服务
1.先把默认的Nginx的default配置文件内容改成下图内容:(目录在 /etc/nginx/sites-available 下面)
配置更改, 使用 systemctl restart nginx 重启下Nginx
2. 终端输入命令启动 dotnet xx-coreapp.dll (替换成你的程序名称);这个需要切换到目录下面执行
例如我的目录是:cd /home/hz/test/
最终结果如下:
扩展,我这里守护进程是用的 supervisor ,配置容易出错的地方顺带写一写:
第一坑: 配置文件格式保存为ascll编码;我这里用控制台写了一个输出文件ascll格式的程序,如下:
第二坑:就是配置项问题了:(目录/etc/supervisor/conf.d下面写自己的配置项)
时间有限,大致过程还是写完了!关于supervisor的安装配置启动这些过程可以自己搜索下,也欢迎各位私聊提问(能自己 解决就不要问了)~