`

使用Passenger在Dreamhost上面部署Rails应用

阅读更多

 

 Wanstrath tweet 关于在Dreamhost上使用Passenger感言,提醒了我,我应该写一点我的经验。我在Dreamhost上面有一些小的Rails应用,使用的还算满意。

此文是建立在这篇文章基础上的, Git’n Your Shared Host On , 为了使用我下面提供的Capistranoas文件更好的部署,你需要一个源码控制工具。

共三个步骤。 创建你的站点,capify你的应用,部署。一旦你这样做过几次,这些步骤你只需要花几分钟,但是如果你是新手,即使你花了几个小时也不要沮丧,因为之后每次你都会更快一点的。

1. 创建你的站点

第一件事情是你需要使用Dreamhost的panel 来创建你的站点。登陆以后,点击 “Domains”, 然后 “Manage Domains” 然后 “Add new domain / sub-domain”. Dreamhost上的Rails app对于php app有两个不同点:

  1. 请务必选中 “Ruby on Rails Passenger”。
  2. 指定你的web目录: yourdomain.com/current/public .

看下面图#1中高亮部分的截图。注意 :如果你没有设置 current/public 作为你的web目录,你可能获得前所未有的失败经验。

Add Domain Screen
Figure #1 : Adding a Domain in DH’s Panel

值得一提的是,无论你是选择一个存在的用户还是创建一个新的用户,请确保这Users区域里更新这个用户为shell 访问,否则他将不会有这样的权利。

因为你设置了你的web目录是current/public, Dreamhost 会自动的为你创建一个目录。一定要ssh登陆到你的服务器,移除当前的这个current 目录(rm -rf current ), 以便Capistrano可以适当的用它作为一个 symlink 到你应用的当前版本。

2. Capify你的应用

现在这个站点被创建好了,接下来安装和配置 Capistrano. cd 到你的应用目录,并且像这样运行capify :

$ cd yourapp
$ capify .

 

它会在你项目的根目录增加一个 Capfile 文件,并且在config/下面增加一个deploy.rb文件。打开 config/deploy.rb ,你可以用下面的部署文件,我已经在多个DH Rails应用上使用了。

default_run_options[:pty] = true
# be sure to change these

set :user, 'username'
set :domain, 'yourdomain.com'
set :application, 'yourapp'
# the rest should be good
set :repository,  "#{user}@#{domain}:git/#{application}.git"
set :deploy_to, "/home/#{user}/#{domain}"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false

server domain, :app, :web
role :db, domain, :primary
 => true
namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
end
end

 

这个部署文件和我之前提到的git setup 一起工作。看这cap文件是多么简单? 只需要配置你的用户,应用的domain,以及应用的名字就好了。关键是要重新定义deploy:restart任务, 创建一个restart.txt文件。

3. 安装和部署

一旦你用DH 控制面板创建了这个站点,也capified了你的应用,那么你只需要运行Capistrano的安装和部署命令就行了。

$ cap deploy:setup
$ cap deploy:migrations # to deploy and run migrations

 

就这样。 你的应用现在应该可以跑了。第一次失败并不可怕, 你能挖掘并试图解决了为什么不能工作的这个问题,那你就赚了。Rails ,Dreamhost和Passenger的部署真的是easy, 但是你可能需要花一些时间去真正理解以及学习如何排除故障。

  • 大小: 12.7 KB
分享到:
评论

相关推荐

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...

    rvm nginx passenger rails配置服务器.docx

    3. **Passenger**:Passenger(又名Phusion Passenger)是一个方便且高效的Rails应用服务器模块,它可以无缝集成到Nginx中,简化Rails应用的部署和管理。 接下来,我们将按照以下步骤进行配置: ### 安装Passenger...

    在RHEL上安裝設置ROR(nginx+passenger+ruby+rails+oracle+netzke)

    在RHEL(Red Hat Enterprise Linux)系统上搭建Ruby on Rails(简称RoR)应用程序环境是一项技术性较强的任务,尤其当涉及到与其他服务如Nginx、Phusion Passenger、Ruby、Rails以及Oracle数据库集成时。以下是对这...

    passenger-3.0.9本地安装包

    Passenger,也称为ModRails,是一款高效且易于使用的Ruby应用程序服务器,尤其适合部署Rails应用。在本文中,我们将深入探讨如何在CentOS 5.4操作系统上通过Ruby Gem安装Passenger 3.0.9版本。为了确保顺利完成安装...

    ruby on rails环境搭建学习笔记;passenger+nginx环境配置

    Passenger 是一款用于部署 Ruby 应用程序的 Web 服务器,它与 Nginx 结合使用时能提供高性能的服务。 ##### 安装 Passenger 1. **安装 Passenger:** ```sh gem install passenger ``` 2. **安装 Passenger ...

    Red Hat Enterprise Linux 环境passenger多ruby版本共存部署

    总之,通过RVM和Passenger,你可以轻松地在Red Hat Enterprise Linux环境中管理多个Ruby版本,并针对每个Rails应用选择合适的Ruby版本进行部署。这不仅提高了灵活性,还能帮助你在维护多个项目时保持系统的稳定性和...

    linux-在Ubuntu服务器上安装Rails生产环境的脚本

    4. **Nginx与Passenger**:为了部署Rails应用,通常会用到Web服务器如Nginx,并搭配Passenger模块,它可以方便地管理和运行Rails应用: ```bash sudo apt-get install -y nginx sudo apt-get install -y ...

    passenger-3.0.11.tar.gz

    Passenger(也称为ModRails或Phusion Passenger)是一款强大的、易于使用的Web服务器和应用程序服务器,主要用于部署Ruby on Rails应用,但同时也支持其他语言如Node.js和Python。在本压缩包"passenger-3.0.11.tar....

    rails web server deploy guide

    通过以上步骤,你可以成功地将Rails应用部署到Web服务器上。这个过程涉及多个层次的技术细节,每个环节都需要谨慎对待,以确保应用的稳定性和安全性。记得在部署前进行充分的测试,以保证一切按预期运行。

    ansible-rails.deploy:部署 Rails 应用程序的 Ansible 角色,与 Haproxy 和 Phusion 乘客独立

    这是一个用于部署Ruby on Rails应用程序、通过Haproxy和Phusion Passenger进行滚动升级的Haproxy 。 目前它假设您正在使用: CentOS 代理 Phusion 乘客独立 虚拟机 去做 工人搬运 Ubuntu 兼容性。 添加测试。 ...

    Ruby on Rails实践

    在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...

    Ruby-極光Rails5專屬伺服器安裝包

    本安装包“Ruby-極光Rails5專屬伺服器安裝包”就是专为快速部署Rails 5应用程序而设计的,它包含了Nginx 1.10、Passenger 5和Ruby 2.3.1这三个关键组件。 1. **Ruby 2.3.1**: Ruby是一种面向对象的、动态类型的编程...

    centOS Rails3环境搭建

    Node.js在某些Rails应用中是必需的,尤其是在使用某些前端工具如Webpacker时。可以通过以下命令进行安装: ```bash # 安装依赖库 yum install httpd httpd-devel openssl-devel zlib-devel mysql-server mysql-...

    Rails 中mongrel的安装

    虽然Mongrel在Rails社区曾经非常流行,但由于其不再维护,现在更多人转向了如Passenger(Phusion Passenger)、Puma或Unicorn等更现代、更稳定的Web服务器。这些服务器同样支持Rails应用,并且在性能和稳定性方面有...

    ruby on rails在线考试系统

    9. 布署与服务器配置:Rails应用通常部署在如Heroku、AWS或DigitalOcean等云平台上,使用Nginx或Apache作为反向代理,Passenger、Puma或Unicorn作为应用服务器。 10. 性能优化:Rails应用可以通过缓存、数据库索引...

    基于C++和多种语言的mod_rails Phusion Passenger设计源码

    本项目是基于C++和多种语言的mod_rails Phusion Passenger设计源码,包含4547个文件,其中包括3321个HPP文件、364个H文件、176个CPP文件、166个RB文件、63个C文件、56个JS文件、54个IPP文件、51个ERB文件和27个...

    RailsOnUbuntu:Ubuntu用户的Rails好东西!

    在Ubuntu 14.04 LTS上使用Passenger 5 / Nginx部署Sinatra / Rails 4应用程序的命令列表。 我还在博客上写了一篇文章(针对初学者),详细说明了每个步骤-http: 如果您遇到困难并需要任何帮助,请在该帖子上发表...

Global site tag (gtag.js) - Google Analytics