【轉載】在Linux平台上安裝和配置Ruby on Rails詳解

來源:互聯網
上載者:User
ruby on rails推薦的生產運行環境是Linux/FreeBSD/Unix,即Unix系列的作業系統,採用lighttpd+FCGI的解決方案。以下我將以Linux作業系統,lighttpd+FCGI,MySQL資料庫為例,從原始碼編譯安裝開始講解。 在安裝之前,應該確認Linux作業系統已經安裝好gcc編譯器,否則請用Linux安裝光碟片先行安裝gcc編譯器:gcc –v 如能返回gcc版本號碼,則gcc正確安裝。  一、安裝 Ruby 解析器 一些Linux發行版本,MacOSX作業系統都內建Ruby解析器,但是我仍然建議自行下載ruby原始碼編譯安裝。因為一方面可以自己定製ruby安裝的路徑,另一方面可以在編譯過程中自行添加更多的特性。 ruby的原始碼可以從Ruby官方網站下載:http://www.ruby-lang.org/en/downloads/ 下載原始碼包到本地Linux主機,然後解壓縮,進入該目錄,進行配置,編譯和安裝:tar xzvf ruby-1.8.5.tar.gzcd ruby-1.8.5./configure –prefix=/usr/local/rubymake && make install如果想瀏覽所有的configure參數,可以:./configure –help |more如果不定製安裝的目錄,預設將安裝到/usr/local目錄下面。然而我建議自行定製一個ruby的安裝目錄,例如/usr/local/ruby,這樣便於以後的升級,不會和作業系統其他軟體混在一起。 安裝好以後,修改作業系統PATH路徑,加入/usr/local/ruby/bin:export PATH=/usr/local/ruby/bin:$PATH將我們自己安裝的ruby放在系統PATH前面,避免作業系統內建的ruby造成的幹擾。在Linux上,一般將設定放在/etc/profile中,便於對全域生效。  二、安裝 ruby on rails 在安裝rails之前,要先安裝rubygems。rubygems是ruby的線上包管理工具,可以從rubyforge下載rubygems:http://rubyforge.org/projects/rubygems/下載好原始碼包,解壓縮,安裝:tar xzvf rubygems-0.9.0.tgzcd rubygems-0.9.0/ruby setup.rb 然後就可以安裝rails了,在確認伺服器已經串連互連網的情況下執行:gem install rails –y即通過gem從rubyforge網站下載rails所有依賴包安裝。 安裝好rails以後,可以執行:rails –v 確認一下rails的版本。   三、安裝 ruby 的資料庫適配器 rails發行包中已經內建純ruby的MySQL資料庫適配器,然而對於生產環境來說,我們仍然應該下載安裝C版本的資料庫適配器,以達到更好的效能。下載mysql-ruby-2.7.3.tar.gz:http://www.tmtm.org/en/mysql/ruby/tar xzvf mysql-ruby-2.7.3.tar.gzcd mysql-ruby-2.7.3ruby extconf.rb --with-mysql-dir=/opt/mysql5 make && make install注意--with-mysql-dir應該指向MySQL資料庫的安裝路徑,如果資料庫伺服器和Web伺服器不在同一台機器上,那麼Web伺服器上也必須安裝MySQL軟體,因為ruby的C版本MySQL適配器需要在編譯的時候聯結MySQL的系統庫。   四、安裝 Ruby FCGI 支援 由於ruby的fcgi支援庫需要在編譯的時候聯結FCGI的系統庫,因此我們需要先安裝FCGI庫,下載FCGI原始碼發行包:http://www.fastcgi.com/dist/tar xzvf fcgi-2.4.0.tar.gzcd fcgi-2.4.0./configure --prefix=/usr/local/fcgimake && make install同樣,將fcgi安裝在自己指定的目錄下,而不是預設的/usr/local,避免多個軟體混在一起。 然後就可以安裝ruby的fcgi支援庫了,下載ruby-fcgi-0.8.7.tar.gz:http://rubyforge.org/projects/fcgi/tar xzvf ruby-fcgi-0.8.7.tar.gzcd ruby-fcgi-0.8.7ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib ruby install.rb setupruby install.rb install  五、安裝 lighttpd Web Server  安裝 Lighttpd 在安裝lighttpd之前,應該確認作業系統已經安裝pcre,即Perl相容的規則運算式庫:rpm –qa |grep pcre如果沒有,請從Linux安裝光碟片裡面安裝。 然後下載lighttpd:http://www.lighttpd.net/download/tar xzvf lighttpd-1.4.13.tar.gzcd lighttpd-1.4.13./configure --prefix=/usr/local/lighttpd configure完畢以後,會給出一個啟用的模組和沒有啟用模組的清單,可以檢查一下,是否自己需要的模組都已經啟用,在enable的模組中一定要有“mod_rewrite”這一項,否則重新檢查pcre是否安裝。然後編譯安裝:make && make install  編譯後配置:cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpdmkdir /etc/lighttpdcp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf 如果你的Linux是RedHat/CentOS,那麼:cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd如果你的Linux是SuSE,那麼:cp doc/rc.lighttpd /etc/init.d/lighttpd其他Linux發行版本可以自行參考該檔案內容進行修改。然後修改/etc/init.d/lighttpd,把LIGHTTPD_BIN=/usr/sbin/lighttpd改為LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd 此指令碼用來控制lighttpd的啟動關閉和重起:/etc/init.d/lighttpd start /etc/init.d/lighttpd stop /etc/init.d/lighttpd restart 如果你希望伺服器啟動的時候就啟動lighttpd,那麼:chkconfig lighttpd on 這樣lighttpd就安裝好了,接下來需要配置lighttpd。  配置 Lighttpd 修改/etc/lighttpd/lighttpd.conf 1)server.modules取消需要用到模組的注釋,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。 2)server.document-root, server.error-log,accesslog.filename需要指定相應的目錄 3)用什麼許可權來運行lighttpdserver.username            = "nobody"server.groupname           = "nobody"從安全形度來說,不建議用root許可權運行web server,可以自行指定普通使用者權限。 4)靜態檔案壓縮compress.cache-dir         = "/tmp/lighttpd/cache/compress"compress.filetype          = ("text/plain", "text/html","text/javascript","text/css")可以指定某些靜態資源類型使用壓縮方式傳輸,節省頻寬,對於大量AJAX應用來說,可以極大提高頁面載入速度。 5)配置ruby on rails 最簡單的配置如下:$HTTP["host"] == "www.xxx.com" { server.document-root = "/yourrails/public" server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = (".fcgi" =>    ("localhost" =>      ("min-procs" => 10,       "max-procs" => 10,       "socket" => "/tmp/lighttpd/socket/rails.socket",       "bin-path" => "/yourrails/public/dispatch.fcgi",       "bin-environment" => ("RAILS_ENV" => "production")      )    ) )}即由lighttpd啟動10個FCGI進程,lighttpd和FCGI之間使用本機Unix Socket通訊。   六、安裝 ImageMagick RMagic RMagic是ruby處理圖片需要用到的庫,很多ruby應用由雩都涉及圖片處理的功能,往往需要依賴RMagic,但安裝ImageMagick和RMagic相當煩瑣,需要特別的說明。  安裝 ImageMagickhttp://www.imagemagick.org ImageMagick是用C語言實現的圖形處理庫,有Unix版本和Windows版本。對於Unix版本來說,安裝比較麻煩些,另外不建議安裝ImageMagick二進位版本,往往會導致缺少某些圖片處理功能,導致RMagic安裝失敗。下載ImageMagick原始碼,解壓縮,配置:tar xzvf ImageMagick-6.2.9-0.tar.gzcd tar xzvf ImageMagick-6.2.9./configure --prefix=/usr/local/ImageMagick 觀察配置後給出來的支援圖形格式,看看該圖形格式支援是否是yes,如果不是,那麼必須先安裝該圖形格式的本地庫。例如,你應該檢查是否已經安裝如下rpm包:rpm –qa |grep libpngrpm –qa |grep libpng-develrpm –qa |grep libjpegrpm –qa |grep gd-devel如果你希望支援tiff格式,還應該檢查rpm –qa |grep libtiff如果沒有安裝,那麼在Linux安裝光碟片找到相應rpm包安裝上,再次configure直到確認需要的圖形格式全部支援為止,然後編譯安裝:make && make install 由於ImageMagic被安裝在我們自行指定的/usr/local/ImageMagick,後面安裝RMagic會找不到需要用到的ImageMagic的命令和庫,因此需要配置一下作業系統: 編輯/etc/profile裡面的PATH環境變數,在最後面加入:export PATH=/usr/local/ruby/bin:/usr/local/ImageMagick/bin:$PATH 編輯/etc/ld.so.conf,加入:/usr/local/ImageMagick/lib執行命令:ldconfig將ImageMagick的庫加入系統聯結庫 然後登出目前使用者重新登入,便於環境變數修改生效,執行:convert logo: logo.gif看是否正確產生一個logo.gif的圖片檔案。  安裝 RMagichttp://rubyforge.org/projects/rmagick/在rubyfoge上面下載RMagic的原始碼發行包,不要下載gem包,然後解壓縮編譯:./configure make && make install 如果配置和編譯過程沒有報錯,即大功告成。 對於MacOSX來說,安裝RMagic以上步驟會出錯,請參考:http://rmagick.rubyforge.org/install-osx.html 總體來說,ImageMagick和RMagic的安裝很容易出錯,安裝起來比較困難,如果碰到無法解決的問題,可以通過Google尋求解決辦法。

轉自:http://www.javaeye.com/topic/43228

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.