在CentOS上使用Jexus托管運行 ZKEACMS

来源:http://www.cnblogs.com/shanyou/archive/2017/05/22/6883931.html
-Advertisement-
Play Games

ZKEACMS Core 是基於 .net core 開發的,可以在 windows, linux, mac 上跨平臺運行,接下來我們來看看如何在 CentOS 上使用Jexus托管運行 ZKEACMS,通常我們在Linux部署ASP.NET Core應用,按照微軟的官方文檔,我們通常需要Nginx... ...


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.MySqlPomelo.EntityFrameworkCore.MySql ,推薦大家使用,經過了實際項目的檢驗。

ZKEACMS Core 的資料庫腳本只有SQL Server, 將SQL Server資料庫轉換為MySQL的工具非常多,這裡不做具體介紹了。

發佈 ZKEACMS.Core

發佈 ZKEACMS.Core 比較簡單,雙擊 Publish.cmd 即可

image

生成的文件在目錄 ZKEACMS.Core\src\ZKEACMS.WebHost\bin\Release\PublishOutput

修改連接字元串

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

{
  "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"
}

上傳伺服器

我們將發佈好的程式同winscp 程式上傳到伺服器/var/www/csharpkit 目錄,具體操作可參考文章《使用WinSCP軟體在windows和Linux中進行文件傳輸

image

配置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應用程式的配置全過程


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • xargs命令是把接收到的數據重新格式化,再將其作為參數提供給其他命令,下麵介紹xargs命令的各種使用技巧 一、將多行輸入轉換成單行輸入: 將單行輸入轉換成多行輸出: 自定義定界符進行轉換(預設的定界符是空格): 二、在腳本中運用: 在上面的例子中,我們把參數源都放入args.txt文件,但是除了 ...
  • 初始化git 配置git 使用Git的第一件事就是設置你的名字和email,這些就是你在提交commit時的簽名,每次提交記錄里都會包含這些信息。使用git config命令進行配置 執行了上面的命令後,會在家目錄( )下建立一個叫 的文件(該文件為隱藏文件,需要使用 查看到). 內容一般像下麵這樣 ...
  • How to set up host-only virtual machines that host can access it... 問題 因為工作和學習,我經常需要移動裝有Linux系統的筆記本電腦,有時在家裡用,有時在公司里用,這兩個地方的網路都是不同的,或者有時要開會或到外面,不能連接任何的 ...
  • 問題如題,df -h 出來的容量與du -sh 查看的容量信息不一樣,是那裡出了問題了嗎? 下麵分別是du -sh *與df -h出來的結果 以上是相關查詢命令的輸出,下麵是硬碟fdisk -l的輸出信息 之前也使用 badblocks 進行掃描了下,壞的塊為0。 實在是找不出來相關的原因了,遂發出 ...
  • 目錄結構: /bin:存放系統常用的命令程式 /boot:系統啟動或引導所需要的一些文件 /dev:可用的設備文件 /etc:系統配置相關的東西 /home:所有用戶的主目錄 /lib,lib64:存放系統的庫文件 /media:即插即用設備文件 /mnt:存儲設備掛載目錄 /opt:可選軟體包安裝 ...
  • ———————————————————————————————————————————— 分類: 按結構原理分: 觸點式開關按鍵 無觸點開關按鍵 接入方式 獨立式按鍵 矩陣式鍵盤 按結構原理分: 觸點式開關按鍵 無觸點開關按鍵 接入方式 獨立式按鍵 矩陣式鍵盤 ——————————————————— ...
  • 提高逼格,給自己的網站加入智能聊天功能 引言 現在突然發現有很多 QQ 群都開啟了群機器人的功能,其中有兩個角色,他們分別是:Baby Q 和 QQ 小冰。在 Q 群中,你可以對他們進行任意程度的調戲,不過,遺憾的是魚和熊掌不可得兼,一個群只能進行二選一。據說 Baby Q 來自圖靈公司,而小冰卻是 ...
  • 背水一戰 Windows 10 之 控制項(集合類 - ItemsControl): 基礎知識, 數據綁定, 項模板選擇器 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...