网站开发与app开发,上海专业高端网站建设服,中启智联网站建设,免费手机网站源码ZKEACMS Core 是基于 .net core 开发的#xff0c;可以在 windows, linux, mac 上跨平台运行#xff0c;接下来我们来看看如何在 CentOS 上使用Jexus托管运行 ZKEACMS#xff0c;通常我们在Linux部署ASP.NET Core应用#xff0c;按照微软的官方文档#xff0c;我们通常需要…ZKEACMS Core 是基于 .net core 开发的可以在 windows, linux, mac 上跨平台运行接下来我们来看看如何在 CentOS 上使用Jexus托管运行 ZKEACMS通常我们在Linux部署ASP.NET Core应用按照微软的官方文档我们通常需要Nginx 搭配 Systemd https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction Nginx并没有接管Kestrel 进程我们需要维护2个进程增加了复杂度。如果你把asp.net core部署于windows上我们可以用IIS来接管Kestrel进程我们在Linux上也可以用Jexus来达到IIS一样的体验。
安装 .Net Core 运行时
按照官方文档https://www.microsoft.com/net/core#linuxcentos 运行以下命令安装 .Net Core Runtime
sudo yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid843421
sudo mkdir -p /usr/local/dotnet sudo tar zxf dotnet.tar.gz -C /usr/local/dotnet
sudo ln -s /usr/local/dotnet/dotnet /usr/local/bin
安装 Jexus
按照《CentOS 7.2下安装Mono 5.0》安装好了Mono 5, 我这里是安装通用版的Jexus通用版的Jeuxs 才能使用到我们自己安装的最新版的Mono 5。安装 Jexus 直接使用一下命令即可(需要在root身份下执行):
curl https://jexus.org/release/install | sh
安装成功后会提示OK, Jexus has been installed in /usr/jexus.
备注 你可以直接安装独立版的Jexus独立版的Jexus自带Mono使用的是Mono的稳定版本4.8安装命令也是一个命令就可以搞定curl https://jexus.org/release/x64/install.sh|sh
发布 ZKEACMS.Core
数据库 MySql
我使用的是腾讯云的云数据库MySQLCloud Database for MySQL是腾讯云基于全球最受欢迎的开源数据库MySQL专业打造的高性能分布式数据存储服务100%完全兼容MySQL 协议适用于面向关系型数据库的场景。ZKEACMS Core 默认使用的是Oracle官方的Mysql驱动由于Oracle官方的mysql驱动有很多问题目前还是beta版本最近也不见更新我在生产环境使用的是Pomelo.EntityFrameworkCore.MySql 我ZKEACMS的MySQL驱动更改为Pomelo.EntityFrameworkCore.MySql经测试工作良好我已经把相关修改pull 给ZKEACMS。 MySQL for .NET Core - Pomelo 扩展包系列 包括Pomelo.Data.MySql 和 Pomelo.EntityFrameworkCore.MySql 推荐大家使用经过了实际项目的检验。
ZKEACMS Core 的数据库脚本只有SQL Server, 将SQL Server数据库转换为MySQL的工具非常多这里不做具体介绍了。
发布 ZKEACMS.Core
发布 ZKEACMS.Core 比较简单双击 Publish.cmd 即可 生成的文件在目录 ZKEACMS.Core\src\ZKEACMS.WebHost\bin\Release\PublishOutput
修改连接字符串
打开 appsettings.json加入 MySQL的数据库连接字符串结果如下
{ ConnectionStrings: { DefaultConnection: , Sqlite: , MySql: Server10.66.241.199;DatabaseZKEACMS_Core;User Idroot;Passwordxxxxxxx; }, ApplicationInsights: { InstrumentationKey: }, Logging: { IncludeScopes: false, LogLevel: { Default: Debug, System: Information, Microsoft: Information } }, CDN: { Enable: true, Url: http://cdn.zkeasoft.com/core }, Culture: zh-CN}
上传服务器
我们将发布好的程序同winscp 程序上传到服务器/var/www/csharpkit 目录具体操作可参考文章《使用WinSCP软件在windows和Linux中进行文件传输》 配置Jexus运行ZKEACMS Core
定位到目录然后使用 dotnet 命令运行
cd /var/www/csharpkit
dotnet ZKEACMS.WebHost.dll
运行成功以后就可以使用您服务器的IP或者域名访问了默认访问的端口是5000 退出SSH远程连接客户端后发现访问不了这是因为 dotnet 也退出了。下面我们就通过Jexus来管理我们服务进程。
使用以下命令
1、切换到Jexus配置文件目录
cd /usr/jexus/siteconf
2、复制默认的配置文件为test
cp default csharpkit
3、编辑csharpkit配置文件
nano csharpkit
####################### Web Site: csharpkit########################################
port80root/ /var/www/csharpkithostswww.csharpkit.com #OR your.com,*.your.com
AppHost{cmddotnet /var/www/csharpkit/ZKEACMS.WebHost.dll;root/var/www/csharpkit;port0;}
配置的重点就在于AppHost中需要注意的是在AppHost中的port端口号不代表Jexus对外服务的port(端口号),而是指要转发的 Asp.Net Core应用程序的端口号如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),在没有使用UsrUrls自定义端口的情况下端口号设置为 0Jexus会在运行时与Asp.Net Core进行协商具体使用的端口号避免多个应用分配端口的麻烦和冲突的风险。 简单来说就是会将外部的请求转发到这个端口由这个端口对应的Asp.Net Core应用程序对请求进行处理。
4、启动/重启 Jexus
当配置文件编辑完成后使用以下命令对Jexus进行 启动/重启
# 如果已启动 Jexus
sh /usr/jexus/jws restart# 如果未启动 Jexus
sh /usr/jexus/jws start
启动/重启成功后在浏览器中输入 ip地址/域名:端口号 例如(http://www.csharpkit.com/) 即可访问Asp.Net Core应用程序
以上即是Jexus托管Asp.Net Core应用程序的配置全过程
原文地址http://www.cnblogs.com/shanyou/p/6883931.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注