在Nginx上运行RubyonRails

【译文】Nginx已经成为世界第三大Web服务器,在国内十大网站使用的Web服务器调查中,Nginx也名列前茅。Ruby on Rails是近几年开始流行的新一代Web开发语言,其易用、敏捷的特性收到很多Web开发人员的瞩目。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的威远网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

本文将指导您在Ubuntu/Debian上从Ruby和Rails开始,一步一步的安装配置Ruby on Rails环境,并结合Nginx运行环境获得优异的性能。

安装Ruby

 
 
 
  1. export PATH="${PATH}:/var/lib/gems/1.8/bin/" 
  2. echo 'export PATH="${PATH}:/var/lib/gems/1.8/bin/"' >> /etc/bash.bashrc  
  3. aptitude install ruby rubygems vim-ruby rub y-dev libzlib-ruby   
  4. libyaml-ruby libreadline-ruby libncurses-ruby rdoc ri libcurses-ruby   
  5. libruby libruby-extras libfcgi-ruby build-essential libopenssl-ruby   
  6. libdbm-ruby libdbi-ruby libxml-ruby libxml2-dev 

安装Rails

 
 
 
  1. gem install -v=2.3.5 rails 

gem install rails也应该可以工作,但2.3.6-2.3.8(目前正在编写)存在问题。如果你想尝试***版本,则可以使用:

 
 
 
  1. gem install rails –pre 

或使用RVM,RVM是一个命令行工具,允许我们更容易安装,管理和使用多个Ruby环境。

应用程序

我的新应用程序叫做myapp.example.com。

 
 
 
  1. cd /var/www  
  2. rails new myapp.example.com  
  3. cd myapp.example.com 

Thin服务器

Thin将成为Ruby服务器:

 
 
 
  1. gem install thin  
  2. thin install  
  3. /usr/sbin/update-rc.d -f thin defaults  
  4. thin config -C /etc/thin/myapp.example.com -c 
  5. /var/www/myapp.example.com --servers 3 -e development # or: -e production for caching, etc 

如果你不喜欢Thin,还有Mongrels:

 
 
 
  1. aptitude install mongrel mongrel-cluster  
  2. mongrel_rails cluster::configure -e development -p 3000 -N 3 -c /var/www/myapp.example.com 
  3. -a 127.0.0.1 # or: -e production for caching, etc  
  4. mkdir /etc/mongrel_cluster  
  5. sudo ln -nfs /var/www/myapp.example.com/config/mongrel_cluster.yml /etc/mongrel_cluster/myapp.example.com.yml  
  6. #sudo ln -nfs /var/www/myapp.example.com/config/mongrel_cluster.yml 
  7. /etc/mongrel-cluster/sites-enabled/myapp.example.com.yml 

安装Nginx

Nginx将作为Web服务器,代理发送给Thin的Ruby请求,运行在端口3000-3002上,使用下面的命令进行安装:

 
 
 
  1. aptitude install nginx 

#p#安装好Nginx后,创建一个Vhost(虚拟主机),编辑/etc/nginx/sites-enabled/myapp.example.com,输入:

 
 
 
  1. upstream myapp {  
  2.     server 127.0.0.1:3000;  
  3.     server 127.0.0.1:3001;  
  4.     server 127.0.0.1:3002;  
  5. }  
  6. server {  
  7.     listen   80;  
  8.     server_name .example.com;  
  9.    
  10.     access_log /var/www/myapp.example.com/log/access.log;  
  11.     error_log  /var/www/myapp.example.com/log/error.log;  
  12.     root       /var/www/myapp.example.com;  
  13.     index      index.html;  
  14.    
  15.     location / {  
  16.         proxy_set_header  X-Real-IP  $remote_addr;  
  17.         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
  18.         proxy_set_header  Host $http_host;  
  19.         proxy_redirect    off;  
  20.         try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;  
  21.     }  
  22.    
  23.     location @ruby {  
  24.         proxy_pass http://myapp;  
  25.     }  

数据库

首先安装SQLite:

 
 
 
  1. aptitude install -y libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby  
  2. gem install sqlite3-ruby 

MySQL

如果你想使用MySQL,则使用下面的命令进行安装:

 
 
 
  1. aptitude install -y libmysqlclient-dev  
  2. gem install mysql 

然后修改你的/var/www/myapp.example.com/config/database.yml,如:

 
 
 
  1. development:  
  2.     adapter: mysql  
  3.     host: localhost  
  4.     database: myapp  
  5.     username: myapp  
  6.     password: xxxxxxx 

注意,database.yml不支持Tab键,如果你使用的是vim,可能需要做如下设置:

 
 
 
  1. :set expandtab  
  2. #:set tabstop=4 # how many spaces should tabs be replaced withs  
  3. :retab 

然后将下面的内容添加到./Gemfile,让你的应用程序使用MySQL:

 
 
 
  1. gem 'mysql', '2.8.1' 

假设你已经有一个MySQL服务器在运行,如果没有,你需要先运行aptitude install mysql-server安装它。

gem安装配置

 
 
 
  1. gem install uuidtool  
  2. gem install ruby-debug  
  3. gem install ruby-graphviz  
  4. gem install json  
  5. gem install activemerchant 

启动应用程序

让我们重启我们的守护程序,看看它是否能正常工作。

对于Thin:

 
 
 
  1. /etc/init.d/thin restart && /etc/init.d/nginx reload; tail -f log/*.log 

对于Mongrel

 
 
 
  1. mongrel_cluster_ctl restart && /etc/init.d/nginx reload; tail -f log/*.log 

在config/routs.rb中添加:

 
 
 
  1. map.root :controller => "home" 

创建一个home控制器,移除‘Welcome aboard’HTML:

 
 
 
  1. script/generate controller home index  
  2. rm public/index.html  
  3. echo '

    HeyO! h1>

  4. param>
  5. param>
  6. param>
  7. type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" 
  8. width="640" height="385"> embed>
  9. object>' > app/views/home/index.erb 

如果一切顺利,在浏览器中输入你创建的Vhost地址,你将会看到预期的内容,到此,我们就成功地在Ubuntu上的Nginx安装配置并运行起了Ruby on Rails环境。

网站栏目:在Nginx上运行RubyonRails
网页URL:http://www.hantingmc.com/qtweb/news25/139675.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联