在Centos7下发布.NET CORE项目[转]
1.安装安装前准备开发环境
编译类库:yum -y install gcc make gcc-c++ openssl-devel
系统信息:
CentOS Linux release 7.2.1511 (Core)
Kernel: Linux 3.10.0-327.el7.x86_64
2.安装SDK过程
安装libunwind
#yum install libunwind
安装libicu
#yum install libicu
下载dotnet.tar.gz文件。在线下载安装命令:curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529
下载成功后进行安装,安装命令:mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
执行命令后,安装成功。
输入dotnet命令可查看到相关的命令使用方法。
#dotnet –verion 查看dotnet的版本信息。
安装SDK或者部署过程可参考微软官方的步骤。
该截图安装SDK步骤是官方提供的。
3.执行Dotnet Restore命令
通过ftp工具(FileZilla)将整个项目文件夹上传到linux服务器中。
在服务器下输入cd /usr/local/wwwroot/进入到目录下可查看到上传文件夹demo,如果该文件夹没有操作操作权限可进行授权。
进入到demo目录执行命令:
#dotnet restore
dotnet restore主要是做了:寻找当前目录下的项目文件(project.json),然后利用NuGet库还原整个项目的依赖库,然后遍历每个目录,生成项目文件,继续还原该项目文件中的依赖项。
4.执行Dotnet Publish命令
执行dotnet publish命令,进行发布,当然也可以在发布之前,修改配置文件,例如修改数据库连接配置,找到相关的json配置文件,修改配置保存再进行发布。
我们可以使用more appsettings.json命令查看数据库的连接配置信息,如果需要修改输入vi appsettings.json命令进行编辑文件,修改数据库信息。
发布成功。
6.执行Dotnet Run命令
7.访问发布站点
在浏览器下,访问站点成功。
在服务器后台可看到处理信息。
7.在firewall下添加站点端口
输入添加端口命令:
#firewall-cmd --zone=public--add-port=5000/tcp –permanent #添加5000端口
#firewall-cmd –reload #重载firewall
#firewalld-cmd --list-all
8.附录
8.1运行dotnet publish提示npm错误
当出现该错误时,因为.NET CORE的jquery和bootstrap的加载是通过bower的,而bower是需要npm的,所以需要安装nodejs,Nodejs中包含了npm包。
安装nodejs有两种方式,其中一种是使用在线安装方式,另外一种是使用源码安装方式。
Yum在线安装方式:
输入命令:curl --silent --location https://rpm.nodesource.com/setup_4.x|bash -
在线安装之前需要输入一下命令,才能使用yum进行安装nodejs,安装命令:yum install nodejs
可根据需求,安装不同版本:
Run as root on RHEL, CentOS or Fedora, forNode.js v4 LTS Argon:
curl --silent --location https://rpm.nodesource.com/setup_4.x|bash -
Alternatively for Node.js v6:
curl --silent --location https://rpm.nodesource.com/setup_6.x
|bash-
Alternatively for Node.js 0.10:
curl --silent --location https://rpm.nodesource.com/setup
|bash-
输入后输入在线安装命令。 yum install nodejs
安装成功后,输入node –v或npm –v查看版本命令。
源码安装模式:
下载源码吗后,上传到服务器中。
#chmod 766 node-v4.5.0.tar.gz #修改文件操作权限
#tar -zxvf node-v4.5.0.tar.gz #解压文件
安装配置之前需要先在线下载编译时依赖的类库。
当安装完nodejs后,再次运行dotnet publish命令后,又出现错误提示。需要再次进行bower和gulp安装。
输入安装命令:
#npm install -g bower #-g表示全局安装
#npm install -g gulp
如果遇到bower ESUDO Cannot be run with sudo的提示,则是你用root权限执行,bower默认不允许以root权限执行命令。那么就带上一个参数–allow-root,如下:
bower install --allow-root