Ubuntu部署.Net Core Web Api (3.1)

时间:2024-03-09 11:23:00

各位盆友好,我的某位好基友(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的安装配置启动这些过程可以自己搜索下,也欢迎各位私聊提问(能自己                解决就不要问了)~