<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 68, comments - 19, trackbacks - 0, articles - 1

    1.開篇說明

     a. 首先我在寫這篇博客之前,已經在自己本地配置了mono和jexus并且成功部署了asp.net mvc項目,我也是依賴于在網上查找的各種資料來配置環境并且部署項目的,而其在網上也已有了很多這方面的文章,故而我就想我是寫還是不寫呢,但是想來想去,我還是寫一下吧,因為網上的文章太雜亂,不是最新版本,不是很整齊并且也可能會遇到各種各樣的問題,所以我決定寫一篇從無到部署項目上線的文章并且會友情提示很多內容以及解決方案,希望也能夠融入自己的思想。
     b. 因為現在跨平臺是一個趨勢,網上學習的人員很多,我可能寫的不好,希望大家見諒,下面開始從無到有的過程吧。

    2.Mono和Jexus簡單說明

     a. Mono是由Novell公司(由Xamarin(已被微軟收購并且將會開源,前途一片光明)發起,一個致力于開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運行時和一組類庫,并且實現了ADO.NET和ASP.NET,能夠使的開發人員在Linux下用C#開發程序。)主持的項目,該項目的目標就是創建一系列符合標準的ECMA(Ecma-334和Ecma-335)的.NET工具,包括C #編譯器和共同語言(CL 即 Common Language)執行平臺(Platform),與微軟的.Net不同:Mono項目不僅可以運行于Windows系統內,還可以運行于Linux、 FreeBSD、Unix、Mac OS X和Solaris,可以說是完完全全的跨平臺。

     b. Jexus即Jexus Web Server,簡稱JWS,是再linux平臺上的一款ASP.NET WEB服務器,Jexus for linux有如下特點:

    b.1 支持多種操作系統:Jexus最初的設計目標就是"跨平臺的ASP.NET WEB服務器",由于在window系統上,IIS已經是ASP.NET的優秀平臺,所以當前的Jexus以支持Linux和FreeBSD等非Windows系統為主要設計目標。

    b.2 高性能:“高性能”是Jexus的重要設計目標,雖然Jexus基于Mono環境運行,但Jexus并非全部由mono的.NET組件構成,對于涉及性能的關鍵代碼,Jexus非常巧妙的大量采用了Linux/Unix本身的優秀特性,從代碼層面保證了Jexus的性能優勢,同時Jexus的框架特征也為高性能提供了基礎保證。Jexus不象XSP那樣,純HTML也需要經過ASP.NET處理,更不象Apache和Nginx等服務器,需要通過插件的形式間接地對ASP.NET進行支持,Jexus把HMTL靜態文件處理模塊、ASP.NET處理模塊、靜態文件高速緩存機制、epoll/poll數據傳輸機制等進行了高度集成,從架構本身入手,最大限度地提高WEB服務器的處理能力和傳輸速度。

    b.3 安全性:Jexus內核含有安全監控機制,絕大多數惡意訪問在進入網站前就會被Jexus直接Pass掉,這是Jexus有別于其它Web服務的一大特色。

    b.4 穩定性:從運行機制而言,Jexus系統中,有專門監測工作進程執行狀態的管理單元,任何一個進程退出或者任何一個ASP.NET網站應用程序域退出,就會被管理單元發現并且重啟,從而保證了Jexus能夠時時刻刻不間斷的工作,舊程序本身而言,Jexus程序的代碼力求簡潔,Bug很少,同時,Jexus的每個版本在正式發布之前,都要進過嚴格的壓力測試,影響穩定性的因素,幾乎在正式發布之前既已被全部排除。

    b.5 功能強大,Jexus支持URL重寫,支持多目標服務器的反向代理,支持PHP,支持GZIP壓縮傳輸并且可以利用不同端口,不同虛擬路徑,不同域名設置任意數量的網站。

    b.6 安裝、配置、操作即為簡單,服務社區化,各種問題都能快速的處理,有良好的后續服務支撐能力。

    b.7 在官網下還有一些好處請查看:http://www.linuxdot.net/bbsfile-3084

    備注:部分內容來自網絡,感謝張善友等社區活躍人物。

    c. Mono官網:http://www.mono-project.com/

    d. Jexus官網:http://www.jexus.org/

    e. 工欲善其事必先利其器,那么下面我們來進行配置mono和Jexus并且部署MVC網站,本次操作需要用到的軟件以及系統如下所示:虛擬機(Vmware)、虛擬機中安裝的CentOS系統(64位)(IP:192.168.37.138)、Xshell、Xftp至于如何使用它們我們下面會說到。

    3. 配置Mono需要的GDI+兼容API的庫Libgdiplus

     a. 通過上面簡單的哦介紹之后,我們開始配置mono和jexus,在配置mono之前,首先來配置Libgdiplus。

     b.使用XShell連接Centos,然后輸入更新系統命令:yum -y update將低版本的系統升級(我的從centos6.4升級到6.7),6.4下配置也可以。

     c. 執行完畢之后,在安裝必要的軟件,命令如下:

    yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

    備注:可能電腦已經安裝了這些文件,可用rpm -qa libexif*命令查看,但是這里為了確保萬無一失,直接全部執行。

     d. 執行完畢之后跳轉到local下面創建屬于自己的文件夾kencery,在此文件夾下面創建libgdiplus文件夾,命令如下:

            d.1 (1):cd usr/local/    (2):mkdir kencery    (3):cd kencery/   (4):mkdir libgdiplus  (5):cd libgdiplus/

     e. 使用命令wget下載最新版本的libgdiplus,命令如下,下載完成之后將包解壓(至于安裝包里面是什么內容,請自行使用命令ls -l查看),如下圖所示:

    e.1 wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-4.2.tar.gz

    e.2 tar -zxvf libgdiplus-4.2.tar.gz

    備注:可以打開http://download.mono-project.com/sources/libgdiplus/此網站查看所有的文件,選擇想要下載的文件,我這里下載的是最新的libgdiplus。

     f. 進入libgdiplus-4.2(cd libgdiplus-4.2)文件下,執行下面的命令進行安裝

    f.1 ./configure --prefix=/usr

    f.2 make

    f.3  make install

    4.  配置Mono

     a. Mono的安裝在整個 過程中時間比較長,請大家耐心安裝。

     b. cd跳轉到文件夾kencery,在此文件夾下面創建mono文件夾,命令如下:

    b.1 (1):cd /usr/local/kencery  (2):mkdir mono  (3):cd mono/

     c. 使用命令wget下載最新版本的mono,命令如下,下載完成之后將包解壓(至于安裝包里面是什么內容,請自行使用命令ls -l查看),如下圖所示:

    c.1 wget http://download.mono-project.com/sources/mono/mono-4.4.0.148.tar.bz2

    c.2 tar -jxvf mono-4.4.0.148.tar.bz2

    備注:可以打開http://download.mono-project.com/sources/mono/此網站查看所有的文件,選擇想要下載的文件,我這里下載的是最新的mono。

     d. 進入mono-4.4.0(cd mono-4.4.0)文件下,執行下面的命令進行安裝

    d.1 ./configure --prefix=/usr

    d.2 make (發現會出現很多警告,不用擔心,不會影響到項目部署)

    d.3 make install

     e. 上述命令執行完成之后,輸入mono -V如果含有mono的版本信息,則說明安裝成功,版本信息如圖所示:

    5.  配置Jexus

     a. 當mono配置完成并且測試沒有問題的情況下,這時候我們就可以對Jexus進行配置了。

     b. cd跳轉到文件夾kencery,在此文件夾下面創建jexus文件夾,命令如下:

    b.1 (1):cd /usr/local/kencery  (2):mkdir jexus (3):cd jexus/

     c. 使用命令wget下載最新版本的jexus,命令如下,下載完成之后將包解壓(至于安裝包里面是什么內容,請自行使用命令ls -l查看),如下圖所示:

    c.1 wget http://www.linuxdot.net/down/jexus-5.8.1.tar.gz

    c.2 tar -zxvf jexus-5.8.1.tar.gz

     備注:在官網下找到最新的jexus下載。

     d. 進入jexus-5.8.1(cd jexus-5.8.1)文件下,執行下面的命令進行安裝

    d.1 sudo ./install

    備注:在執行install腳本時,jexus默認是安裝到/usr/jexus/中,如果您想安裝到自定義的目錄,可以在執行該腳本的時候增加一個目錄參數(sudo ./install /usr/local/kencery/jexus/)

     e. 因為Jexus是一個服務,故而可以控制整個服務的啟動、停止、重啟,命令如下,請自行測試

    e.1 啟動 sudo /usr/jexus/jws start

    e.2 停止 sudo /usr/jexus/jws stop

    e.3 重啟 sudo /usr/jexus/jws restart

     f. 當然也可以控制指定網站的啟動,停止,重啟,命令如下:請自行測試

    f.1 啟動 sudo /usr/jexus/jws start website(網站名稱)

    f.2 停止 sudo /usr/jexus/jws stop sizeName(網站名稱)

    f.3 重啟 sudo /usr/jexus/jws restart sizeName(網站名稱)

     g. 使用命令:sudo /usr/jexus/jws start啟動,如果jexus啟動OK,則說明安裝成功了。

     h. 當jexus啟動成功,這時候我們想在外面訪問jexus,但是瀏覽器訪問出錯,使用ping 域名是可以ping通,但是瀏覽器訪問就是失敗(提示:無法訪問此網站,192.168.37.138的響應時間過長),這是為什么呢?這是因為jexus默認是80端口,而系統安裝完成之后80端口是不允許外界訪問的,故而訪問不了,設置將80端口開放使外界可以訪問。

    h.1 cd /etc/sysconfig/

    h.2 vim iptables 修改并且保存,如圖所示:

    h.3 重啟服務  service iptables restart

     i. 當h完成之后,重啟jexus,輸入如下網址訪問,如圖所示,則說明jexus安裝完全成功,接下來我們就需要部署ASP.NET MVC項目了。

    備注:快捷安裝方法(一對命令將會安裝成功Jexus)

     1.安裝:sudo curl jexus.org/release/install | sh

     2.更新:sudo curl jexus.org/release/upgrade | sh

      說明:使用這種命令的安裝方法將會吧Jexus安裝到/usr/jexus 位置。

     

    -------------------------------------華麗的分割線—>下面將ASP.NET MVC項目部署到Jexus下-------------------------------------------------------

    6.  部署ASP.NET MVC項目

     a. 當mono配置完成并且測試沒有問題的情況下,這時候我們就需要向其部署MVC項目,那么如何部署項目呢?這塊很重要

     b. 那么怎么部署一個新的網站程序呢?

    b.1 首先需要建立一個"網站配置文件",jexus安裝的路徑下(我本機安裝在/usr/jexus)下有一個siteconf文件夾,這里面的每一個文件都是一個網站的配置文件,每一個配置文件就代表一個網站,在(/usr/jexus/siteconf/)中,就已經有一個默認的網站配置文件,文件名為:"default";你可以修改這個配置文件,也可以將這個配置文件賦值并修改為一個新的站點。

    b.2 在配置文件中,有關鍵的三項是必填項:

    port:端口號定義,端口號是一個整數,一般是80,也可以是65535以下的其它整數,但是這個端口號必須沒有其它服務程序占用。 root:虛擬根路徑和物理根路徑的定義,根路徑由兩部分組成,中間用空格分開,空格前表示這個網站訪問時的虛擬根路徑(一般都是"/",不用修改),空格后是存放這個網站內容的文件夾的物理路徑(比如:"/var/www/default/") hosts:域名定義,填寫訪問這個網站的域名,如果有多個域名,域名間用英文逗號分開,同時還可以用"泛域名",比如:"*.mysite.com"。 網站名稱:jexus把網站配置文件的名稱作為網站名。

    b.3 首先拷貝一份default文件,拷貝到jexus安裝的路徑下的siteconf下,然后修改里面的內容,命令如下:

    (1):cd /usr/jexus/siteconf/       (2):cp default  mms     (3):vim mms    修改之后保存如圖所示:    

    b.3 這時候在jexus中我們將網站配置文件已經配置完成,但是還沒有上傳網站,這時候我們需要上傳網站,上傳的路徑如上圖所示在/var/www/mms下,如果沒有文件,則創建即可。

     c. Visual Studio部署網站

    c.1 首先我們將下面的項目遷移到Jexus下,此項目不是Demo,是一個在實際場景中使用的項目,故而結構就不截圖了,只簡單將主項目截圖,項目結構如圖所示:

    c.2 然后使用VS的發布功能,將項目發布,和一般的項目發布一模一樣,這里就不做詳細講解了,請參考: http://blog.sina.com.cn/s/blog_8ce459cd0102v1kx.html,在發布的時候請注意設置選項下的配置,如圖所示:(我剛開始配置始終不成功就是因為這里配置的原因)

    c.3 項目發布完成之后,刪除無用的文件信息,如圖所示:

       

     d.  將項目遷移到Jexus

    d.1 首先在Linux下跳轉到需要放置項目的目錄下(cd /var/www/mms),打開XFtp,將網站文件上傳都此目錄下,如圖所示:

               

    d.2 其次我們需要開放8080端口,在文章上面已經說過如何開放端口80,參考開放即可,這里就不在累贅了。

    d.3 使用jexus的重啟功能重新啟動Jexus或者啟動網站(./jws start或者./jws start mms(如果這個訪問還是有問題,則使用前面的命令進行啟動))

     e.  部署完成后訪問項目

    e.1  部署完成之后訪問發現出現了如下圖所示的錯誤,出現了很亂的內容,這是因為Linux下是區分大小寫的,故而我們需要配置jexus,使其大小寫都可以轉換,那么會如何配置呢?

    e.2 打開jexus的配置文件(vim jws),取消# export MONO_IOMAP="all"這段內容的前面的#,保存,然后重新啟動jexus(./jws restart)

    e.3 最后我們在瀏覽器中訪問(http://192.168.37.138:8080/),如圖所示:項目已經徹底遷移到Jexus下。

    備注:我對項目進行了簡單的操作,沒有遇到任何問題。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产在线观看xxxx免费| 亚洲成人激情小说| 美女被爆羞羞网站在免费观看 | 国产v亚洲v天堂a无| 99在线在线视频免费视频观看| 亚洲gv猛男gv无码男同短文| 两个人看的www免费视频中文| 亚洲国产无套无码av电影| 中文字幕免费播放| 久久精品夜色国产亚洲av| 又大又硬又爽又粗又快的视频免费| 亚洲人成电影亚洲人成9999网| 免费无遮挡无码永久视频 | 亚洲国产乱码最新视频| 女人18毛片水真多免费看| 亚洲欧美黑人猛交群| 免费人成在线观看网站视频| 成在线人免费无码高潮喷水| 亚洲福利在线观看| 精品久久久久久久久免费影院| 亚洲日韩AV一区二区三区四区| 国产一级高清免费观看| 中文字幕一区二区免费| 亚洲国产精品专区| 国产一级做a爱免费视频| 手机看片国产免费永久| 亚洲电影在线免费观看| 日韩一区二区在线免费观看 | 在线成人精品国产区免费| 亚洲成综合人影院在院播放| 免费无遮挡无码视频网站| 一级毛片免费在线播放| 亚洲综合无码一区二区三区| 好男人视频社区精品免费| 久久av免费天堂小草播放| 亚洲综合精品香蕉久久网97| 美女黄网站人色视频免费国产| 成在线人免费无码高潮喷水| 亚洲中文字幕无码爆乳app| 亚洲自偷自偷在线制服| 女人18毛片免费观看|