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有两个不同点:
- 请务必选中 “Ruby on Rails Passenger”。
- 指定你的web目录:
yourdomain.com/current/public
.
看下面图#1中高亮部分的截图。注意 :如果你没有设置 current/public
作为你的web目录,你可能获得前所未有的失败经验。
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, 但是你可能需要花一些时间去真正理解以及学习如何排除故障。
相关推荐
在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...
3. **Passenger**:Passenger(又名Phusion Passenger)是一个方便且高效的Rails应用服务器模块,它可以无缝集成到Nginx中,简化Rails应用的部署和管理。 接下来,我们将按照以下步骤进行配置: ### 安装Passenger...
在RHEL(Red Hat Enterprise Linux)系统上搭建Ruby on Rails(简称RoR)应用程序环境是一项技术性较强的任务,尤其当涉及到与其他服务如Nginx、Phusion Passenger、Ruby、Rails以及Oracle数据库集成时。以下是对这...
Passenger,也称为ModRails,是一款高效且易于使用的Ruby应用程序服务器,尤其适合部署Rails应用。在本文中,我们将深入探讨如何在CentOS 5.4操作系统上通过Ruby Gem安装Passenger 3.0.9版本。为了确保顺利完成安装...
Passenger 是一款用于部署 Ruby 应用程序的 Web 服务器,它与 Nginx 结合使用时能提供高性能的服务。 ##### 安装 Passenger 1. **安装 Passenger:** ```sh gem install passenger ``` 2. **安装 Passenger ...
总之,通过RVM和Passenger,你可以轻松地在Red Hat Enterprise Linux环境中管理多个Ruby版本,并针对每个Rails应用选择合适的Ruby版本进行部署。这不仅提高了灵活性,还能帮助你在维护多个项目时保持系统的稳定性和...
4. **Nginx与Passenger**:为了部署Rails应用,通常会用到Web服务器如Nginx,并搭配Passenger模块,它可以方便地管理和运行Rails应用: ```bash sudo apt-get install -y nginx sudo apt-get install -y ...
Passenger(也称为ModRails或Phusion Passenger)是一款强大的、易于使用的Web服务器和应用程序服务器,主要用于部署Ruby on Rails应用,但同时也支持其他语言如Node.js和Python。在本压缩包"passenger-3.0.11.tar....
通过以上步骤,你可以成功地将Rails应用部署到Web服务器上。这个过程涉及多个层次的技术细节,每个环节都需要谨慎对待,以确保应用的稳定性和安全性。记得在部署前进行充分的测试,以保证一切按预期运行。
这是一个用于部署Ruby on Rails应用程序、通过Haproxy和Phusion Passenger进行滚动升级的Haproxy 。 目前它假设您正在使用: CentOS 代理 Phusion 乘客独立 虚拟机 去做 工人搬运 Ubuntu 兼容性。 添加测试。 ...
在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...
本安装包“Ruby-極光Rails5專屬伺服器安裝包”就是专为快速部署Rails 5应用程序而设计的,它包含了Nginx 1.10、Passenger 5和Ruby 2.3.1这三个关键组件。 1. **Ruby 2.3.1**: Ruby是一种面向对象的、动态类型的编程...
Node.js在某些Rails应用中是必需的,尤其是在使用某些前端工具如Webpacker时。可以通过以下命令进行安装: ```bash # 安装依赖库 yum install httpd httpd-devel openssl-devel zlib-devel mysql-server mysql-...
虽然Mongrel在Rails社区曾经非常流行,但由于其不再维护,现在更多人转向了如Passenger(Phusion Passenger)、Puma或Unicorn等更现代、更稳定的Web服务器。这些服务器同样支持Rails应用,并且在性能和稳定性方面有...
9. 布署与服务器配置:Rails应用通常部署在如Heroku、AWS或DigitalOcean等云平台上,使用Nginx或Apache作为反向代理,Passenger、Puma或Unicorn作为应用服务器。 10. 性能优化:Rails应用可以通过缓存、数据库索引...
本项目是基于C++和多种语言的mod_rails Phusion Passenger设计源码,包含4547个文件,其中包括3321个HPP文件、364个H文件、176个CPP文件、166个RB文件、63个C文件、56个JS文件、54个IPP文件、51个ERB文件和27个...
在Ubuntu 14.04 LTS上使用Passenger 5 / Nginx部署Sinatra / Rails 4应用程序的命令列表。 我还在博客上写了一篇文章(针对初学者),详细说明了每个步骤-http: 如果您遇到困难并需要任何帮助,请在该帖子上发表...