目录
初次接触Linux和Nginix,折腾了一天才把Asp.net Core配置好,下面就来说说我在其中遇到的问题以及解决办法.
1.CenOS7
安装我使用的是最下化安装,没有图形界面,注意:网络和主机名这里一定要选择开启,否则安装完成后无法上网,需要自己手动开启(ps:我没有成功,最后重新安装的)
设置完root密码并且新建用户后(也可以不新建用户),等待安装完成就可以了
2.环境配置
进入root用户,更换默认的yum为网易yum,首先使用 下面的命安装wget:
yum install wget
接着使用下面的命令备份默认的yum:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
然后使用下面三条命令cd,wget,mv下载对应版本repo文件, 放入/etc/yum.repos.d/:
cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo mv CentOS7-Base-163.repo CentOS-Base.repo
运行以下命令生成缓存:
yum clean all yum makecache
二.安装.net core环境
1、添加dotnet产品Feed
在安装.NET Core之前,您需要注册Microsoft产品Feed。这只需要做一次。首先,注册Microsoft签名密钥,然后添加Microsoft产品Feed
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
2、安装.NET Core SDK
sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.0.0
之后运行命令
dotnet --info
可以查看安装是否成功。至此,.Net Core的安装就完成了。(以上部分来自:https://blog.csdn.net/qq3401247010/article/details/78148282)
3.使用FTP工具上传.net core(我使用的是FileZilla)
3.1首先配置静态IP,转到network-scipts目录下
cd /etc/sysconfig/network-scripts
输入ll,查看不是ifcfg-lo的ifcfg-XXX文件,这个ifcfg-xxx文件就是我们要配置的文件
VMware中,我使用额是NAT模式
NAT模式中的网关,掩码
使用vi ifcfg-xxx进入对应的文件(ps:如果里面的内容为空,有可能是你在安装的时候网络和主机名这个选项没有开启,我在这里浪费了半天,重装即可)进行修改(参考网址:https://www.cnblogs.com/hongdada/p/6666932.html)
BOOTPROTO=static #静态IP IPADDR=192.168.153.112 #本机地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.153.2 #默认网关
使用 :wq! 保存退出
修改/etc/sysconfig/network
# Created by anaconda NETWORKING=yes GATEWAY=192.168.1.1 DNS1=114.114.114.114 DNS2=182.254.116.116
然后重启服务即可
service network restart
3.2 静态IP配置完毕后,为了简单,我们直接把默认的防火墙关闭,不然FileZilla无法连接CentOS,使用下面命令禁用默认防火墙,其他指令可参考:https://www.cnblogs.com/moxiaoan/p/5683743.html
systemctl disable firewalld.service
禁用之后打开FileZilla的站点管理,按照以下配置,填好之后点连接就可以了
接着在netcore下新建一个目录www
接着打开VS,新建一个Asp.net Core项目,找到Program.cs,修改一下,监听8000端口,可参考网址:https://www.jianshu.com/p/b599823a346d
直接发布,然后在windows下打开命令行,使用cd命令到项目目录下,使用dotnet测试项目能否正常运行,出现下面则表示一切正常
然后把发布出来的内容上传到www目录下,同样使用cd 到项目根目录(test是我随意起的名称),运行dotnet tesCore.dll(testCore是项目名称,同样是随意起的)
我这里报错,说找不到Anifogery 2.0.2的版本,路径lib/netstandard2.0/XXX.XX.XX.dll,到了这一步又是折腾半天,使用yum install dotnet-sdk-2.x.x装了好几个sdk没有解决问题(懵逼,我为什么要装它= =!)
我们在windows命令行中运行 dotnet --info 查看正常运行都是什么版本
一个是Product Infomation 2.1.104 一个是Microsoft .NET Core Shared Framework Host 2.0.6 ,接下来看CentOS7中的版本,发现两个都是2.0.0
我首先是执行 sudo yum install dotnet-sdk-2.1.3 按照网上所说更新sdk,更新完成后,版本如下
Product变成2.1.3 下面的Host也稍微上去了几个版本,可是离正常运行的版本还差两个,继续百度,然并软,最后根据根据第一步添加dotnet feed中的URL找到灵感
https://packages.microsoft.com/yumrepos/
进入这个URL,发现一大堆东西
然后点开熟悉的7.3-prod,又是一大堆,完全不知道该选哪个,蒙一个,选了一个hosting2.0.6
在CenOS7中输入:
sudo yum install dotnet-hosting-2.0.6
接着执行dotnet --info 发现2.0.4变成了2.0.6
这是不是可以了呢,运行dotnet test.dll,成功!激动!
接下来就是nginx安装,这个相对简单
参考:https://www.jianshu.com/p/b599823a346d
1.安装(来自:https://www.cnblogs.com/Liang-jc/p/8137956.html)
通过rpm 添加yum源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
接着使用
yum -y install nginx
便可以解决依赖关系安装nginx
接着由于nginx安装完后不自动打开
我们需要开启nginx同时以开机自动运行
systemctl start nginx.service systemctl enable nginx.service
访问url,显示下面内容,Nginx设置成功
2.接下来配置代理
创建一个文件夹,用来放置站点配置文件
mkdir /etc/nginx/hosts
执行 cd /etc/nginx/hosts 进入目录, 执行: vi ossoffical 按 “i” 添加如下内容:
server { listen 80; #要想使用80端口,还需要在修改一下其他配置,下面会说明 index index.html index.htm; server_name www.osscoder.com; #域名,这里随便写,因为我们不连外网,使用静态IP访问我的网站 location / { proxy_pass http://127.0.0.1:8000; # 刚才设置的地址端口 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; } 作者:昔日少年已成叔KK 链接:https://www.jianshu.com/p/b599823a346d 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
:wq!退出保存。
修改nginx配置文件,vi /etc/nginx/nginx.conf
在http节点末尾,添加 :include /etc/nginx/hosts/*;
重启nginx服务器: sudo service nginx restart(reload)
setsebool -P httpd_can_network_connect 1
然后dotnet xxx.dll,重新启动AspNetCore项目,使用静态IP访问,成功!
最简单的CentOS7+Nginx+Asp.net Core配置完成!