新聞中心
【譯文】Nginx已經(jīng)成為世界第三大Web服務(wù)器,在國內(nèi)十大網(wǎng)站使用的Web服務(wù)器調(diào)查中,Nginx也名列前茅。Ruby on Rails是近幾年開始流行的新一代Web開發(fā)語言,其易用、敏捷的特性收到很多Web開發(fā)人員的矚目。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的威遠(yuǎn)網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
本文將指導(dǎo)您在Ubuntu/Debian上從Ruby和Rails開始,一步一步的安裝配置Ruby on Rails環(huán)境,并結(jié)合Nginx運行環(huán)境獲得優(yōu)異的性能。
安裝Ruby
- export PATH="${PATH}:/var/lib/gems/1.8/bin/"
- echo 'export PATH="${PATH}:/var/lib/gems/1.8/bin/"' >> /etc/bash.bashrc
- aptitude install ruby rubygems vim-ruby rub y-dev libzlib-ruby
- libyaml-ruby libreadline-ruby libncurses-ruby rdoc ri libcurses-ruby
- libruby libruby-extras libfcgi-ruby build-essential libopenssl-ruby
- libdbm-ruby libdbi-ruby libxml-ruby libxml2-dev
安裝Rails
- gem install -v=2.3.5 rails
gem install rails也應(yīng)該可以工作,但2.3.6-2.3.8(目前正在編寫)存在問題。如果你想嘗試***版本,則可以使用:
- gem install rails –pre
或使用RVM,RVM是一個命令行工具,允許我們更容易安裝,管理和使用多個Ruby環(huán)境。
應(yīng)用程序
我的新應(yīng)用程序叫做myapp.example.com。
- cd /var/www
- rails new myapp.example.com
- cd myapp.example.com
Thin服務(wù)器
Thin將成為Ruby服務(wù)器:
- gem install thin
- thin install
- /usr/sbin/update-rc.d -f thin defaults
- thin config -C /etc/thin/myapp.example.com -c
- /var/www/myapp.example.com --servers 3 -e development # or: -e production for caching, etc
如果你不喜歡Thin,還有Mongrels:
- aptitude install mongrel mongrel-cluster
- mongrel_rails cluster::configure -e development -p 3000 -N 3 -c /var/www/myapp.example.com
- -a 127.0.0.1 # or: -e production for caching, etc
- mkdir /etc/mongrel_cluster
- sudo ln -nfs /var/www/myapp.example.com/config/mongrel_cluster.yml /etc/mongrel_cluster/myapp.example.com.yml
- #sudo ln -nfs /var/www/myapp.example.com/config/mongrel_cluster.yml
- /etc/mongrel-cluster/sites-enabled/myapp.example.com.yml
安裝Nginx
Nginx將作為Web服務(wù)器,代理發(fā)送給Thin的Ruby請求,運行在端口3000-3002上,使用下面的命令進(jìn)行安裝:
- aptitude install nginx
#p#安裝好Nginx后,創(chuàng)建一個Vhost(虛擬主機),編輯/etc/nginx/sites-enabled/myapp.example.com,輸入:
- upstream myapp {
- server 127.0.0.1:3000;
- server 127.0.0.1:3001;
- server 127.0.0.1:3002;
- }
- server {
- listen 80;
- server_name .example.com;
- access_log /var/www/myapp.example.com/log/access.log;
- error_log /var/www/myapp.example.com/log/error.log;
- root /var/www/myapp.example.com;
- index index.html;
- location / {
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Host $http_host;
- proxy_redirect off;
- try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
- }
- location @ruby {
- proxy_pass http://myapp;
- }
- }
數(shù)據(jù)庫
首先安裝SQLite:
- aptitude install -y libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby
- gem install sqlite3-ruby
MySQL
如果你想使用MySQL,則使用下面的命令進(jìn)行安裝:
- aptitude install -y libmysqlclient-dev
- gem install mysql
然后修改你的/var/www/myapp.example.com/config/database.yml,如:
- development:
- adapter: mysql
- host: localhost
- database: myapp
- username: myapp
- password: xxxxxxx
注意,database.yml不支持Tab鍵,如果你使用的是vim,可能需要做如下設(shè)置:
- :set expandtab
- #:set tabstop=4 # how many spaces should tabs be replaced withs
- :retab
然后將下面的內(nèi)容添加到./Gemfile,讓你的應(yīng)用程序使用MySQL:
- gem 'mysql', '2.8.1'
假設(shè)你已經(jīng)有一個MySQL服務(wù)器在運行,如果沒有,你需要先運行aptitude install mysql-server安裝它。
gem安裝配置
- gem install uuidtool
- gem install ruby-debug
- gem install ruby-graphviz
- gem install json
- gem install activemerchant
啟動應(yīng)用程序
讓我們重啟我們的守護程序,看看它是否能正常工作。
對于Thin:
- /etc/init.d/thin restart && /etc/init.d/nginx reload; tail -f log/*.log
對于Mongrel
- mongrel_cluster_ctl restart && /etc/init.d/nginx reload; tail -f log/*.log
在config/routs.rb中添加:
- map.root :controller => "home"
創(chuàng)建一個home控制器,移除‘Welcome aboard’HTML:
- script/generate controller home index
- rm public/index.html
- echo '
HeyO! h1>
- param>
- param>
- param>
如果一切順利,在瀏覽器中輸入你創(chuàng)建的Vhost地址,你將會看到預(yù)期的內(nèi)容,到此,我們就成功地在Ubuntu上的Nginx安裝配置并運行起了Ruby on Rails環(huán)境。
當(dāng)前標(biāo)題:在Nginx上運行RubyonRails
分享URL:http://fisionsoft.com.cn/article/copdgpg.html


咨詢
建站咨詢
