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

本文介绍如何在Dreamhost上使用Passenger部署Rails应用,包括创建站点、配置Capistrano及部署过程。通过三步走策略,即便是新手也能快速上手。

 

 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, 但是你可能需要花一些时间去真正理解以及学习如何排除故障。

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值