一些Linux發行版本,MacOSX操做系統都自帶Ruby解析器,可是我仍然建議自行下載ruby源代碼編譯安裝。由於一方面能夠本身定製ruby安裝的路徑,另外一方面能夠在編譯過程當中自行添加更多的特性。javascript
ruby的源代碼能夠從Ruby官方網站下載:css
http://www.ruby-lang.org/en/downloads/ html
下載源代碼包到本地Linux主機,而後解壓縮,進入該目錄,進行配置,編譯和安裝:java
tar xzvf ruby-1.8.5.tar.gz mysql
cd ruby-1.8.5 web
./configure –prefix=/usr/local/ruby sql
make && make install 數據庫
若是想瀏覽全部的configure參數,能夠:ubuntu
./configure –help |more windows
若是不定製安裝的目錄,默認將安裝到/usr/local目錄下面。然而我建議自行定製一個ruby的安裝目錄,例如/usr/local/ruby,這樣便於之後的升級,不會和操做系統其餘軟件混在一塊兒。
安裝好之後,修改操做系統PATH路徑,加入/usr/local/ruby/bin:
export PATH=/usr/local/ruby/bin:$PATH
將咱們本身安裝的ruby放在系統PATH前面,避免操做系統自帶的ruby形成的干擾。在Linux上,通常將設置放在/etc/profile中,便於對全局生效。
在安裝rails以前,要先安裝rubygems。rubygems是ruby的在線包管理工具,能夠從rubyforge下載rubygems:
http://rubyforge.org/projects/rubygems/
下載好源代碼包,解壓縮,安裝:
tar xzvf rubygems-0.9.0.tgz
cd rubygems-0.9.0/
ruby setup.rb
而後就能夠安裝rails了,在確認服務器已經鏈接互聯網的狀況下執行:
gem install rails –y
即經過gem從rubyforge網站下載rails全部依賴包安裝。
安裝好rails之後,能夠執行:
rails –v
確認一下rails的版本。
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.gz
cd mysql-ruby-2.7.3
ruby extconf.rb --with-mysql-dir=/opt/mysql5
make && make install
注意--with-mysql-dir應該指向MySQL數據庫的安裝路徑,若是數據庫服務器和Web服務器不在同一臺機器上,那麼Web服務器上也必須安裝MySQL軟件,由於ruby的C版本MySQL適配器須要在編譯的時候聯接MySQL的系統庫。
因爲ruby的fcgi支持庫須要在編譯的時候聯接FCGI的系統庫,所以咱們須要先安裝FCGI庫,下載FCGI源代碼發行包:
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local/fcgi
make && 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.gz
cd ruby-fcgi-0.8.7
ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
ruby install.rb setup
ruby install.rb install
安裝 Lighttpd
在安裝lighttpd以前,應該確認操做系統已經安裝pcre,即Perl兼容的規則表達式庫:
rpm –qa |grep pcre
若是沒有,請從Linux安裝光盤裏面安裝。
而後下載lighttpd:
http://www.lighttpd.net/download/
tar xzvf lighttpd-1.4.13.tar.gz
cd lighttpd-1.4.13
./configure --prefix=/usr/local/lighttpd
configure完畢之後,會給出一個激活的模塊和沒有激活模塊的清單,能夠檢查一下,是否本身須要的模塊都已經激活,在enable的模塊中必定要有「mod_rewrite」這一項,不然從新檢查pcre是否安裝。而後編譯安裝:
make && make install
編譯後配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp 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是ubuntu,那麼須要本身建立啓動腳本,lighttpd官方wiki上面已經給出來該腳本,地址在:
http://redmine.lighttpd.net/wiki/1/ScriptsUbuntu
其餘Linux發行版本能夠自行參考該文件內容進行修改,或者本身寫一個控制腳本,也不過舉手之勞:
C代碼
#!/bin/sh
case "$1" in
start)
/usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf > /dev/null 2>&1
;;
stop)
killall lighttpd
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: lighttpd.sh {start|stop|restart}"
;;
esac
exit 0
而後修改/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)用什麼權限來運行lighttpd
server.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通訊。
Lighttpd的FAQ:沒法啓動Ruby on Rails
FastCGI的啓動腳本位於Rails應用目錄下面public/dispatch.fcgi,若是沒法啓動Lighttpd,報告 FastCGI錯誤,你能夠嘗試着手工運行該腳本cd public && ./dispatch.fcgi,看看是否能夠運行。通常來講,不少人都是在Windows下面建立Rails項目,致使dispatch.fcgi腳本的ruby運行路徑指向windows下面的ruby,部署到Linux上面就沒法運行了,另一方面Windows上面建立的Rails項目在 Linux上面dispatch.fcgi沒有可執行權限,因此也須要授予可執行權限。
RMagic是ruby處理圖片須要用到的庫,不少ruby應用因爲都涉及圖片處理的功能,每每須要依賴RMagic,但安裝ImageMagick和RMagic至關煩瑣,須要特別的說明。
安裝 ImageMagick
ImageMagick是用C語言實現的圖形處理庫,有Unix版本和Windows版本。對於Unix版原本說,安裝比較麻煩些,另外不建議安裝ImageMagick二進制版本,每每會致使缺乏某些圖片處理功能,致使RMagic安裝失敗。下載ImageMagick源代碼,解壓縮,配置:
tar xzvf ImageMagick-6.2.9-0.tar.gz
cd tar xzvf ImageMagick-6.2.9
./configure --prefix=/usr/local/ImageMagick
觀察配置後給出來的支持圖形格式,看看該圖形格式支持是不是yes,若是不是,那麼必須先安裝該圖形格式的本地庫。例如,你應該檢查是否已經安裝以下rpm包:
rpm –qa |grep libpng
rpm –qa |grep libpng-devel
rpm –qa |grep libjpeg
rpm –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的圖片文件。
安裝 RMagic
http://rubyforge.org/projects/rmagick/
在rubyfoge上面下載RMagic的源代碼發行包,不要下載gem包,而後解壓縮編譯:
./configure
make && make install
若是配置和編譯過程沒有報錯,即大功告成。
對於MacOSX來講,安裝RMagic以上步驟會出錯,請參考:
http://rmagick.rubyforge.org/install-osx.html
整體來講,ImageMagick和RMagic的安裝很容易出錯,安裝起來比較困難,若是碰到沒法解決的問題,能夠經過Google尋求解決辦法。