在CentOS上使用Jexus托管运行 ZKEACMS
ZKEACMS Core 是基于 .net core 開發(fā)的,可以在 windows, linux, mac 上跨平臺運(yùn)行,接下來我們來看看如何在 CentOS 上使用Jexus托管運(yùn)行 ZKEACMS,通常我們在Linux部署ASP.NET Core應(yīng)用,按照微軟的官方文檔,我們通常需要Nginx 搭配 Systemd (https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction), Nginx并沒有接管Kestrel 進(jìn)程,我們需要維護(hù)2個進(jìn)程,增加了復(fù)雜度。如果你把a(bǔ)sp.net core部署于windows上,我們可以用IIS來接管Kestrel進(jìn)程,我們在Linux上也可以用Jexus來達(dá)到IIS一樣的體驗(yàn)。
安裝 .Net Core 運(yùn)行時
按照官方文檔https://www.microsoft.com/net/core#linuxcentos?:運(yùn)行以下命令,安裝 .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身份下執(zhí)行): curl https://jexus.org/release/install | sh 安裝成功后會提示:OK, Jexus has been installed in /usr/jexus. 備注: 你可以直接安裝獨(dú)立版的Jexus,獨(dú)立版的Jexus自帶Mono,使用的是Mono的穩(wěn)定版本4.8,安裝命令也是一個命令就可以搞定:curl https://jexus.org/release/x64/install.sh|sh發(fā)布 ZKEACMS.Core
數(shù)據(jù)庫 MySql
我使用的是騰訊云的云數(shù)據(jù)庫MySQL(Cloud Database for MySQL)是騰訊云基于全球最受歡迎的開源數(shù)據(jù)庫MySQL專業(yè)打造的高性能分布式數(shù)據(jù)存儲服務(wù),100%完全兼容MySQL 協(xié)議,適用于面向關(guān)系型數(shù)據(jù)庫的場景。ZKEACMS Core 默認(rèn)使用的是Oracle官方的Mysql驅(qū)動,由于Oracle官方的mysql驅(qū)動有很多問題,目前還是beta版本,最近也不見更新,我在生產(chǎn)環(huán)境使用的是Pomelo.EntityFrameworkCore.MySql ,我ZKEACMS的MySQL驅(qū)動更改為Pomelo.EntityFrameworkCore.MySql,經(jīng)測試工作良好,我已經(jīng)把相關(guān)修改pull 給ZKEACMS。?MySQL for .NET Core - Pomelo 擴(kuò)展包系列?包括Pomelo.Data.MySql?和?Pomelo.EntityFrameworkCore.MySql?,推薦大家使用,經(jīng)過了實(shí)際項(xiàng)目的檢驗(yàn)。
ZKEACMS Core 的數(shù)據(jù)庫腳本只有SQL Server, 將SQL Server數(shù)據(jù)庫轉(zhuǎn)換為MySQL的工具非常多,這里不做具體介紹了。
發(fā)布 ZKEACMS.Core
發(fā)布 ZKEACMS.Core 比較簡單,雙擊 Publish.cmd 即可
生成的文件在目錄 ZKEACMS.Core\src\ZKEACMS.WebHost\bin\Release\PublishOutput
修改連接字符串
打開 appsettings.json,加入 MySQL的數(shù)據(jù)庫連接字符串,結(jié)果如下
{
? "ConnectionStrings": {
??? "DefaultConnection": "",
??? "Sqlite": "",
??? "MySql": "Server=10.66.241.199;Database=ZKEACMS_Core;User Id=root;Password=xxxxxxx;"
? },
? "ApplicationInsights": {
??? "InstrumentationKey": ""
? },
? "Logging": {
??? "IncludeScopes": false,
??? "LogLevel": {
????? "Default": "Debug",
????? "System": "Information",
????? "Microsoft": "Information"
??? }
? },
? "CDN": {
??? "Enable": true,
??? "Url": "http://cdn.zkeasoft.com/core"
? },
? "Culture": "zh-CN"
}
上傳服務(wù)器
我們將發(fā)布好的程序同winscp 程序上傳到服務(wù)器/var/www/csharpkit 目錄,具體操作可參考文章《使用WinSCP軟件在windows和Linux中進(jìn)行文件傳輸》
配置Jexus運(yùn)行ZKEACMS Core
定位到目錄,然后使用 dotnet 命令運(yùn)行
cd /var/www/csharpkit dotnet ZKEACMS.WebHost.dll運(yùn)行成功以后,就可以使用您服務(wù)器的IP或者域名訪問了,默認(rèn)訪問的端口是5000 退出SSH遠(yuǎn)程連接客戶端后,發(fā)現(xiàn)訪問不了,這是因?yàn)?dotnet 也退出了。下面我們就通過Jexus來管理我們服務(wù)進(jìn)程。
使用以下命令:
1、切換到Jexus配置文件目錄
cd /usr/jexus/siteconf2、復(fù)制默認(rèn)的配置文件為test
cp default csharpkit3、編輯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;
}
配置的重點(diǎn)就在于AppHost中,需要注意的是在AppHost中的port(端口號)不代表Jexus對外服務(wù)的port(端口號),而是指要轉(zhuǎn)發(fā)的 Asp.Net Core應(yīng)用程序的端口號,如果在程序中使用了UsrUrls自定義端口則使用UsrUrls中填寫的端口(不建議使用UsrUrls自定義端口),在沒有使用UsrUrls自定義端口的情況下端口號設(shè)置為 0,Jexus會在運(yùn)行時與Asp.Net Core進(jìn)行"協(xié)商"具體使用的端口號,避免多個應(yīng)用分配,端口的麻煩和沖突的風(fēng)險。 簡單來說就是會將外部的請求轉(zhuǎn)發(fā)到這個端口,由這個端口對應(yīng)的Asp.Net Core應(yīng)用程序?qū)φ埱筮M(jìn)行處理。
4、啟動/重啟 Jexus
當(dāng)配置文件編輯完成后使用以下命令對Jexus進(jìn)行 啟動/重啟
# 如果已啟動 Jexus: sh /usr/jexus/jws restart# 如果未啟動 Jexus: sh /usr/jexus/jws start啟動/重啟成功后,在瀏覽器中輸入? ip地址/域名:端口號 例如(http://www.csharpkit.com/)? 即可訪問Asp.Net Core應(yīng)用程序
以上即是Jexus托管Asp.Net Core應(yīng)用程序的配置全過程
原文地址:http://www.cnblogs.com/shanyou/p/6883931.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的在CentOS上使用Jexus托管运行 ZKEACMS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解C#:编程技巧总结(一)
- 下一篇: 一步步学习EF Core(3.EF Co