前言
前阶段弄了个Linux系统想倒腾倒腾.NET Core,结果看了下网上的资料,大部分都是过期的,走了不少弯路,不过还好,今下午总算捣鼓出来了。Linux命令太多了,唉。血的教训:安装一定要看官网的流程。
开始
首先,我们找到官网教程,安装.NET Core 环境。地址:https://www.microsoft.com/net/core#linuxcentos
正如教程中所说,安装之前先删除以前的版本。我的删除方法就是手动删相应的文件夹。然后按照教程一步一步来就OK了。当然不排除你在实战过程中会遇到各种各样的麻烦,多搜,网上还是有方案的。
sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin
上述过程如果顺利走完的话,就是没啥问题了,环境就可以了。现在我们随便新建一个ASP.NET Core程序。也不用编写代码,打开相应的程序目录,我的如下:
这里呢,虽然发布方法是一样的,但是我用的是git将代码克隆到服务器,然后进行发布的。
首先,定位到相应目录:
cd /root/project/LayIM.NETCoreClient/LayIM.NETCoreClient ---定位到web项目下
然后restore
dotnet restore
然后publish
dotnet publish
发布成功之后,会生成bin/Debug/netcoreapp1.0/publish 文件夹,然后定位到该文件夹,执行:
dotnet LayIM.NETCoreClient.dll --改成你的web项目dll
执行完成之后如下:
虽然,localhost可以访问了,但是在外网访问还是不可以的,我这里的原因是80,5000端口没有开放。开放即可。centos7中开放端口方式如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=5000/tcp --permanent
然后重启firewall
最后,发现还是不能访问。(我也不知道为啥),所以我也没思考直接安装了ngnix。
sudo yum install nginx
sudo service nginx start
改一下配置文件,etc/nginx/nginx.conf
server { listen 80; 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; } }
然后重启
nginx -s reload
见证奇迹的时候到啦。
总结
成功是成功了,不过还是手动发布的。下一步打算看看jenkins,利用它配合github完成自动更新,打包发布的功能。就到这里吧。虽然写的不多,但是动手的过程中,真真是碰到了各种奇葩问题,还是自己对Linux不熟悉啊。不过成果出来,还是很高兴的。下班喽~~