首頁 >後端開發 >C#.Net教程 >使用Jexus託管運行 ZKEACMS

使用Jexus託管運行 ZKEACMS

大家讲道理
大家讲道理原創
2017-05-28 11:45:081622瀏覽

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/?linkid=843421
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

我使用的是騰訊雲端的雲端資料庫MySQL(Cloud 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 即可

使用Jexus託管運行 ZKEACMS

產生的檔案在目錄ZKEACMS .Core\src\ZKEACMS.WebHost\bin\Release\PublishOutput

修改連線字串

開啟appsettings. json,加入MySQL的資料庫連接字串,結果如下

{
  "ConnectionStrings": {
    "DefaultConnection": "",
    "Sqlite": "",
    "Sqlite": "",
    "MySql": "Server=10.66.241.199;Database=ZKEACMS_Core;User Id=root;Passw
ord
=xxxxxxx;"=xxxxxxx; ##  },  "ApplicationInsights": {
    "Instrumentation
Key
": ""  },#  "Logging": {
    "##Include
#  "Logging": {
   
Include
Scopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "System": "Information",
      "System": "Information",## }
  },
  "CDN": {

    "Enable": true,
    "Url": "http://cdn.zkeasoft.com/core"  },  "Culture": "zh-CN"
}

上傳使用Jexus託管運行 ZKEACMS伺服器

###我們將發佈好的程式同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
########################################

port=80
root=/ /var/www/csharpkit
hosts=www.csharpkit.com    #OR your.com,*.your.com


AppHost={
cmd=dotnet /var/www/csharpkit/ZKEACMS.WebHost.dll;
root=/var/www/csharpkit;
port=0;
}

配置的重点就在于AppHost中,需要注意的是在AppHost中的port(端口号)不代表Jexus对外服务的port(端口号),而是指要转发的 Asp.Net Core应用程序的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),在没有使用UsrUrls自定义端口的情况下端口号设置为 0,Jexus会在运行时与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应用程序的配置全过程

以上是使用Jexus託管運行 ZKEACMS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn