安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 在Linux平臺上安裝和配置Ruby on Rails詳解

在Linux平臺上安裝和配置Ruby on Rails詳解
2010-01-14 23:33:28  作者:  來源:
ruby on rails推薦的生產運行環境是Linux/FreeBSD/Unix,即Unix系列的操作系統,采用lighttpd+FCGI的解決方案。以下我將以Linux操作系統,lighttpd+FCGI,MySQL數據庫為例,從源代碼編譯安裝開始講解。
 
在安裝之前,應該確認Linux操作系統已經安裝好gcc編譯器,否則請用Linux安裝光盤先行安裝gcc編譯器:
gcc –v
如能返回gcc版本號,則gcc正確安裝。

 
下面分步驟詳細講解環境的安裝和設置
 
 

 

安裝 Ruby 解析器 Top

 
一些Linux發行版本,MacOSX操作系統都自帶Ruby解析器,但是我仍然建議自行下載ruby源代碼編譯安裝。因為一方面可以自己定制ruby安裝的路徑,另一方面可以在編譯過程中自行添加更多的特性。
 
ruby的源代碼可以從Ruby官方網站下載:
 
下載源代碼包到本地Linux主機,然后解壓縮,進入該目錄,進行配置,編譯和安裝:
tar xzvf ruby-1.8.5.tar.gz
cd ruby-1.8.5
./configure –prefix=/usr/local/ruby
make && 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 Top

 

在安裝rails之前,要先安裝rubygems。rubygems是ruby的在線包管理工具,可以從rubyforge下載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的版本。
 

安裝 ruby 的數據庫適配器 Top

rails發行包中已經自帶純ruby的MySQL數據庫適配器,然而對于生產環境來說,我們仍然應該下載安裝C版本的數據庫適配器,以達到更好的性能。下載mysql-ruby-2.7.3.tar.gz:
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 支持 Top

 
由于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:
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 Web Server Top

 
安裝 Lighttpd
 
在安裝lighttpd之前,應該確認操作系統已經安裝pcre,即Perl兼容的規則表達式庫:
rpm –qa |grep pcre
如果沒有,請從Linux安裝光盤里面安裝。
 
然后下載lighttpd:
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上面已經給出來該腳本,地址在:

 
其他Linux發行版本可以自行參考該文件內容進行修改,或者自己寫一個控制腳本,也不過舉手之勞:

 
C代碼 復制代碼
  1. #!/bin/sh   
  2.   
  3. case "$1" in    
  4.   start)            
  5.     /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf > /dev/null 2>&1   
  6.     ;;   
  7.   stop)    
  8.     killall lighttpd   
  9.     ;;   
  10.   restart)    
  11.    $0 stop   
  12.    sleep 1   
  13.    $0 start    
  14.    ;;   
  15.   *)    
  16.   echo "Usage: lighttpd.sh {start|stop|restart}"    
  17.   ;;    
  18. esac   
  19.   
  20. 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沒有可執行權限,所以也需要授予可執行權限。

安裝 ImageMagick 和 RMagic (可選) Top

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
在rubyfoge上面下載RMagic的源代碼發行包,不要下載gem包,然后解壓縮編譯:
./configure
make && make install
 
如果配置和編譯過程沒有報錯,即大功告成。
 
對于MacOSX來說,安裝RMagic以上步驟會出錯,請參考:
 
總體來說,ImageMagick和RMagic的安裝很容易出錯,安裝起來比較困難,如果碰到無法解決的問題,可以通過Google尋求解決辦法。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 轴流风机_混流风机_排烟防火阀-德州辰特空调设备有限公司 | 漫画大全免费看_漫画终身版_羞羞漫画网 | 橡胶粉碎机_轮胎粉碎机_橡胶切条机_橡胶粉碎机价格_河南鑫世昌机械制造有限公司 | 油管家,货车油管家,工程车油管家-淄博畅行电子科技有限公司 | 暖通家-中国暖通空调及热泵产业资讯平台,专业为厂家和商家提供价值服务 | 江门市东信科技 - 江门小程序开发,江门网站制作,江门软件开发,江门app开发 | 商标注册查询_商标注册代理公司_专利申请_版权登记-源智知识产权 | 幼儿园设计公司/南昌酒店装修/办公室/餐厅/民宿/店面/展厅/装修设计公司-益昌装饰集团 | 洁净无尘棚_万级洁净棚_昆山风淋室-昆山市海兴净化设备 | 山东健泽医疗科技有限公司-官网_深呼吸训练器_肋骨固定板_放疗定位膜耗材生产厂家招商 | 万彩办公大师官网-免费的办公工具百宝箱OfficeBox,绿色无广告无捆绑 | 深圳浪琴维修服务中心_浪琴售后保养服务网点_地址 | 意优教育|意大利留学中介_意大利留学费用_意大利申请条件_北京意大利语培训学校 | 装修工程-钢结构工程-环氧地坪漆-东莞市远鸣装饰工程有限公司 | 上海浩斌信息科技有限公司RFID读写器,IC卡读卡器,手持机,数据采集终端,电力仓库管理软件开发,固定资产软件,纱管标签,试剂管理,RFID试剂柜,档案管理,档案柜,智能货架 | 美国西娅图床垫官网-专注高端床垫18年 - 美国西娅图床垫官网 | 河南水处理设备_反渗透设备厂家_河南纯净水设备厂家-静特尔 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 气体灭火安装,气体灭火系统安装,七氟丙烷灭火系统安装,消防气体灭火控制系统 | 河北新鑫矿冶设备有限公司-河北新鑫矿冶设备有限公司 | 文君阁-提供生活百科,日常生活健康小常识,生活小窍门,百科知识大全 | 九江江菱电梯有限公司| 康拓威技术(深圳)有限公司|Theia镜头代理商|安讯士AXIS摄像机|安讯士监控系统|博世BOSCH监控|博世会议系统|索尼SONY监控|松下PANASONIC监控|三星韩华SAMSUNG监控|霍尼韦尔Honeywell|海康|大华|华为监控|Theia无畸变镜头|AXIS监控|安讯视摄像机 | 河南反渗透设备-河南EDI超纯水设备-郑州纯净水设备-郑州友邦水处理设备有限公司 | 山西华盛筑景装饰,山西专业公装公司,太原公装装修公司,包括:办公室,酒店宾馆,商铺店铺,学校幼儿园,会所会馆饭店餐馆等装修设计 | 混凝土布料机,隧道布料机,衬砌台车布料装置 - 河北聚力智能装备有限公司 | 三机一体除湿干燥机,色母机,称重式拌料机,工业冻水机,中央集中供料-东莞市瑞达机械科技有限公司(瑞达国际) | 爬架网@建筑爬架网@冲孔建筑爬架网片@工地冲孔建筑爬架网片@工地冲孔建筑爬架网片厂家@工地冲孔建筑爬架网片生产厂家-安平县诺德金属制品有限公司 | 泊头市鸿海泵业有限公司--导热油泵,高温油泵,沥青保温泵,圆弧泵,齿轮油泵,高粘度泵,自吸离心油泵,罗茨油泵为主的专业生产厂家 | 拉丝机_拔丝机_拉丝设备_丝网机械 - 安平县泰煌拉丝机厂家 | 热熔钻孔机【优质厂家】_多年热熔钻设备研发制造经验 | 湖南长沙智能实验室规划设计、整体建设、净化装修、改造施工公司-福临建设 | 移动CRM软件_SaaS CRM_crm管理软件系统_crm客户关系管理系统_销售管理软件-上海企能软件科技有限公司 | 思行科技-珠海小程序开发-珠海网站建设-珠海APP开发-江门小程序开发-江门网站建设-江门APP开发 | 网带窑,催化剂网带窑,电热回转窑-淄博圣元窑炉工程有限公司 | 升降炉|推板炉|创卓炉业 | 西安鲁班装饰 - 家庭装修,别墅装修,西安十大装修公司排名 | 企好网 - 中国B2B产业互联网践行者|百度爱采购官方授权一级服务商 | 履带吊租赁-履带吊出租-出租履带吊车-出租履带吊-吊车出租-履带吊出租公司 | 纳米砂磨机|纳米研磨机|实验室砂磨机-无锡市少宏粉体科技有限公司 | 明基太阳能玻璃钢污水处理公司-设计研发全自动加药装置设备 |