CentOS MONO nginx 運行.net MVC3

   昨天做了個部署.net On linux的測試,今天調試成功。

    部署環境:
  CentOS6.2 X86-64
    libgdiplus-2.10
    mono 2.10.8
    xsp-2.10
    nginx1.2.7
    第一步:安裝必要的軟件包
     yum 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
     (如果編譯的過程中提示你需要什麼依賴的話,再安裝吧,這樣差不多了)還有個openssl-devel得裝,因爲需要安裝pcre軟件(nginx需要它)。如果你是最小化安裝Linux,那麼還得安裝yum install  wget unzip
    
    第二步:準備相應軟件
   
    下載libgdiplus-2.10
   
    wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2

    下載mono2.10.8
   
    wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2
    下載xsp-2.10
    wget http://download.mono-project.com/sources/xsp/xsp-2.10.tar.bz2

    下載pcre
    wget  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.zip

    下載Nginx
    wget  http://nginx.org/download/nginx-1.2.7.tar.gz

 --------------------割一下---------------------------
    第三步:安裝
    先安裝libgdiplus-2.10
    tar jxvf  libgdiplus-2.10.tar.bz2
    cd   libgdiplus-2.10
    ./configure --prefix=/opt/mono
    make
    make install
    安裝mono
   
   tar -jxvf mono-2.10.8.tar.bz2
   cd mono-2.10.8
   ./configure --prefix=/opt/mono
   make  (這一步時間相當長)
   make install
   更改環境變量
   回到安裝用戶的家目錄:cd  ~
   在家目錄下編輯.bash_profile文件
   vi  .bash_profile
   在最後面加入:
   PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig
   LD_LIBRARY_PATH=/opt/mono/lib
   PATH=/opt/mono/bin:$PATH
   export PKG_CONFIG_PATH LD_LIBRARY_PATH PATH

   保存退出
   vi /etc/ld.so.conf
   在最後加入/opt/mono/lib
   上面這步我有點暈,這個操作是把mono的lib加到全局lib中,而上面那個環境變量LD_LIBRARY_PATH=/opt/mono/lib
   也是同樣目的,在ld.so.conf中找不到的話,就在LD_LIBRARY_PATH=/opt/mono/lib中找,是不是重複了??
   先不管這些,繼續。
   操作完之後,要讓系統這次參數生效有兩個辦法:
   第一:. ./.bash_profile(在家目錄執行次命令)
        ldconfig(任意地方執行次命令,目的:加載lib)
   第二:logout註銷用戶,重新登錄
  
   如果你的環境變量生成好了,那麼輸入mono -V查看mono版本
   如果正確顯示版本,那麼說明安裝無誤。
  
   安裝xsp-2.10
   tar jxvf  xsp-2.10.tar.bz2
   cd xsp-2.10
    ./configure -prefix=/opt/mono
   make
   make install

   安裝pcre
   unzip  pcre-8.32.zip
   cd  pcre-8.32
   ./configure --prefix=/usr/local/pcre
   make 
   make install

   按理說這樣就ok了,可是,出問題了。問題在下面...

   安裝nginx
   tar zxvf nginx-1.2.7.tar.gz
   cd  nginx-1.2.7
   創建用戶和組:
   useradd www
   ./configure --prefix=/opt/nginx  --user=www --group=www --with-http_stup_status_module --with-http_ssl_module --with-pcre=../pcre-8.32
   make
   make install
   亮點在綠色部分,綠色的參數表示的pcre解壓目錄,nginx要的是它的解壓目錄。那我上面爲啥還有編譯安裝pcre呢?
   我怕在這一步出錯,編譯安裝下試試,看看能不能通過。果然,缺少openssl支持。yum install openssl-devel就可以了。
   我把/usr/local/pcre刪除掉。rm -rf /usr/local/pcre
  把nginx的sbin加入到環境變量:
  vi .bash_profile
  PATH=/opt/mono/bin:$PATH改成PATH=/opt/nginx/sbin:/opt/mono/bin:$PATH就ok了。

第四部:修改配置文件
      修改/opt/nginx/conf/nginx.conf
      server {
        listen       80;
        server_name  localhost;
        location / {
            root  /data/web;
            index  index.html index.htm;
            #fastcgi_index Default.aspx;

            fastcgi_pass  127.0.0.1:9000;
            include   /opt/nginx/conf/fastcgi_params;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
       紅色部分是修改的地方。
       修改/opt/nginx/conf/fastcgi_params
       在最下面一行加入:
       fastcgi_param  PATH_INFO          "";
       fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
       這兩處修改用來讓nginx支持.net MVC

       好了,保存退出。
       創建文件夾/data/web上面參數我自定義的,習慣的話就把目錄改成/var/www/html好了,呵呵。

      啓動nginx
      /opt/nginx/sbin/nginx
      如果上面修改的nginx環境變量生效直接輸入nginx啓動。
      然後啓動fastcgi
      fastcgi-mono-server2 /applications=www.domain1.xyz:/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000
      上面那個啓動了是不是到後臺了,如要需要在後臺跑,加個 &
第五步:測試
      cd /data/web
      vim test.aspx
      輸入內容:<%="HelloWorld!"%>保存退出。
     在瀏覽器輸入:ip/test.aspx看看跑起來了嗎?

     nginx重啓:nginx -s reload
     nginx關閉:ps -ef |grep nginx
                kill -9   nginx的進程

     fastcgi關閉同上。
   -----------------說明-------------------
   如果跑MVC3,需要用fastcgi-mono-server4
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章