閱讀目錄
3.Visual Studio 2015本地發(fā)布并且測試
1.開篇說明
a 上篇博客簡單的說明了一下 使用.NET Core開發(fā)的一個(gè)總結(jié),地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么這篇博客我們就在上一篇博客的基礎(chǔ)上對其代碼進(jìn)行部署,將其部署在Linux Centos7下。
b 這周周二,也就是3月7號,微軟發(fā)布了最新的開發(fā)工具(Visual Studio 2017),簡單看了一下,帶來了更好的開發(fā)體驗(yàn),也推動了跨平臺開發(fā)的一大步,未來.NET的跨平臺將更加的成熟。
c 下面我們將一個(gè).NET Core項(xiàng)目利用Jexus部署到linux下,那么如果我們要將一個(gè).NET Core項(xiàng)目部署到linux服務(wù)器下,需要準(zhǔn)備下面的幾個(gè)東西(Linux服務(wù)器,Jexus,安裝數(shù)據(jù)庫的服務(wù)器,其它(Redis)等)。
d 下面我們開始大致演示一下如何將.NET Core項(xiàng)目部署到linux服務(wù)器下,測試地址:http://www.chuxinm.com/
2.Jexus簡單說明
a 官網(wǎng)地址:http://www.jexus.org/
b 關(guān)于Jexus的安裝,我以前也寫過一篇文章,地址是(http://www.cnblogs.com/hanyinglong/p/5456757.html),我寫的這篇文章是基于Mono安裝的,什么意思呢,也就是說要安裝Jexus,就要安裝Mono,但是現(xiàn)在Jexus提供了免Mono安裝的方案,非常方便,大家可以體驗(yàn)一下,如果安裝遇到什么問題,大家可以在官網(wǎng)或者其他地方進(jìn)行查詢解決。
c Jexus快捷安裝((一對命令將會安裝成功Jexus))
1.安裝:sudo?curl?jexus.org/release/install?|?sh
2.更新:sudo?curl?jexus.org/release/upgrade?|?sh
說明:使用這種命令的安裝方法將會吧Jexus安裝到/usr/jexus?位置。
3.Visual Studio 2015本地發(fā)布并且測試
a 在本地系統(tǒng)開發(fā)完成之后,首先我們需要在本地發(fā)布進(jìn)行測試一下,如果不報(bào)錯,則上傳到服務(wù)器
b 本地項(xiàng)目結(jié)構(gòu)如下圖所示:我們就基于本項(xiàng)目進(jìn)行發(fā)布部署到Linux下。

b.1 首先打開cmd,切換到項(xiàng)目所在盤符下,將項(xiàng)目切換到src根目錄下(../src/項(xiàng)目名稱下),運(yùn)行命令dotnet?publish,運(yùn)行不報(bào)錯則本地發(fā)布成功,如圖所示執(zhí)行成功之后也展示了將項(xiàng)目發(fā)布到什么地方的路徑。

b.2 如上圖所示,我們跳轉(zhuǎn)到發(fā)布的路徑下(項(xiàng)目根目錄下/bin/Debug/netcoreapp1.0/publish下/),運(yùn)行命令:dotnet?ProgrammersLiveShow.dll?,根據(jù)提示訪問地址,可本地測試嗎,如圖所示:

c 如上圖所示,我們按照訪問路徑(http://localhost:5000/),如果訪問成功,則證明本地發(fā)布沒有任何問題,如下圖所示:如有操作登錄的功能,則進(jìn)行系統(tǒng)登錄測試,確認(rèn)沒有任何問題在進(jìn)行發(fā)布。

4.配置Jexus并且部署.NET Core說明
a 上述步驟中我們簡單說明了一下系統(tǒng)的一些功能以及本地發(fā)布,現(xiàn)在我們來簡單說明一下如何配置Jexus,因?yàn)橐郧鞍惭b過jexus,我們直接在Linux下找到安裝的路徑,如圖所示:

b 如上圖所示,我們看到了jexus的安裝目錄,Jexus的配置其實(shí)也很簡單,首先我們打開網(wǎng)站配置文件夾siteconf,然后打開默認(rèn)的default文件,看到如下圖所示的配置,配置上簡單的說明如下:

c 如上圖所示,我們將其項(xiàng)目部署到系統(tǒng)(/var/www/default/publish)下

d 首先我們將本地發(fā)布的文件上傳到服務(wù)器上,直接將本地的publish文件夾上傳到/var/www/default下,如下圖所示

e?因?yàn)槲椰F(xiàn)在系統(tǒng)本身已經(jīng)發(fā)布,所以需要將現(xiàn)在后臺運(yùn)行的線程關(guān)閉(執(zhí)行下面兩條命令之后,則已經(jīng)上線的系統(tǒng)會不能訪問),如果是首次發(fā)布,則不需要進(jìn)行這一步,命令如下,如圖所示:
(1):ps?-ef?|?grep?ProgrammersLiveShow.dll
(2):kill?-9?PID

f 上傳完成之后,系統(tǒng)跳轉(zhuǎn)到publish下,執(zhí)行dotnet?ProgrammersLiveShow.dll,運(yùn)行成功并且可以訪問,則說明發(fā)布才成功,但是這樣有一個(gè)弊端,就是發(fā)布之后不能關(guān)閉Xshell,如果關(guān)閉則默認(rèn)程序會推出,所以,我們可以使用下面的命令直接將其設(shè)置為在后臺運(yùn)行
命令如下:nohup?dotnet?ProgrammersLiveShow.dll?&

g 上述步驟全部執(zhí)行完成之后使用服務(wù)器域名加80端口號既可以進(jìn)行訪問,這里可能存在配置80端口號對外訪問的權(quán)限,在下面會簡單說明
5.其它知識點(diǎn)總結(jié)
a 在系統(tǒng)頻繁的更新中,做好備份是很關(guān)鍵的一件事情,在每次的上線替換系統(tǒng)之前都要執(zhí)行如下命令進(jìn)行備份:
tar?zcvf?/var/www/default/remark/(日期)publish.tar.gz?/var/www/default/publish/
b Centos7開放端口,Centos7和7以前開放端口的實(shí)現(xiàn)不一致.
b.1?Centos升級到7之后,發(fā)現(xiàn)無法使用iptables控制Linuxs的端口,google之后發(fā)現(xiàn)Centos?7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口
b.2?開啟端口:?firewall-cmd?--zone=public?--add-port=80/tcp?--permanent???--zone?#作用域??--add-port=80/tcp?#添加端口,格式為:端口/通訊協(xié)議?--permanent?#永久生效,沒有此參數(shù)重啟后失效
b.3?重啟防火墻?firewall-cmd?--reload
b.4?開啟防火墻:?systemctl?start?firewalld
一個(gè)學(xué)習(xí).NET Core權(quán)限配置的源碼購買地址:http://www.chuxinm.com/Home/Detail?id=8c2e2aff9290446ababf9c5905fa2609
每天一點(diǎn)點(diǎn)都是進(jìn)步
如果文章哪里存在問題,歡迎大家指出來,我會在第一時(shí)間修改。
初心商城:初心商城
作者:韓迎龍(Kencery)MVC/.NET群:159227188
如果您認(rèn)為這篇文章還不錯或者有所收獲,您可以通過右邊的“打賞”功能 打賞一杯咖啡,本頁版權(quán)歸作者和博客園所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明, 且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利