RoR服务器构建和Capistrano支持

时间:2009-01-26 19:09:17

标签: ruby-on-rails deployment capistrano server-configuration

我一直在使用Ruby on Rails创建一个网站,并将通过朋友托管它。他有足够的空间和容量来托管服务器,我有一个专门用作专用服务器的系统。这是我在Rails网站上的第一次尝试,还有一位朋友自我托管。

我将使用以下软件配置在今天和明天格式化和准备服务器:

  • 的Apache2
  • Phusion Passenger(又名mod_rails)
  • Ruby Enterprise Edition
  • MySQL 5

我确实有很多问题,我为它们的复杂性道歉。我还没有找到这个配置的指南,并且对Rails不熟悉我还没有经验可以通过这个方法。

此配置最推荐使用哪种Linux版本?

我一直计划在CentOS上部署。需要注意的是,自从我早期以来,我一直是Windows用户,并且只使用Linux作为webhost和极少数开发命令(例如CVS)。因此,我对Linux的了解相当小,而且我的经验较小。如果我遇到任何部署障碍,技术问题归功于Linux的发行版,或任何类似的东西......我完全不知所措了。

这包括从源代码构建任何内容等内容。

如何在我的服务器上设置Capistrano进行远程部署?

我知道这是一个矛盾(Capistrano是客户端,而不是服务器端),但我不知道它在服务器上需要什么。它需要FTP吗? SFTP? SSL? SSH?什么?

我在服务器上配置了什么,以及如何配置它以使Capistrano顺利运行?

另外,我如何向Capistrano提及我的SCM在localhost上并且是Mercurial的事实? (我使用了TortoiseMg。)我可以转换为SVN,可能在服务器上设置了一个存储库,但我不完全确定如何做到这一点。

从localhost开发部署到完全不同的操作系统上部署时,您最关注的是什么?

其它

为什么不部署到Windows呢?因为我要支付账单,而且我不想支付另一份XP或2000的版本;我拒绝使用Vista。此外,Linux在服务器环境方面比Windows安全得多。

为什么不阅读现有的指南?我是;这是我的第一个使用Ruby on Rails的网站,我的预算现在不到两位数,我正在尝试通过服务器配置和远程部署(进一步开发网站)来扩展我的视野我。我过去依赖主机来支持我的PHP网站,但它们的配置更加同质。 Ruby服务器很昂贵,对我来说太过分了,所以学习它的配置并不会让人知道。

3 个答案:

答案 0 :(得分:1)

我发现在Slicehost.com(一家VPS托管公司)发布的文章非常有用。

完整的文章列表位于:http://articles.slicehost.com/sitemap。您将找到许多与Ruby on Rails应用程序的生产部署相关的文章。

答案 1 :(得分:1)

此配置最推荐使用哪种Linux版本?

任何发行版都可以正常工作,只要它们可以运行Apache2(几乎所有发行版)并且你可以安装Passenger(以及ruby和rails)。 我个人使用CentOS并发现它的包管理器易于使用(yum)。

yum install -y httpd ruby
gem install rails passenger

然后您只需在/etc/httpd/conf/httpd.conf中进行一些配置即可添加Passenger(遵循Passenger passenger-install-apache2-module的安装文件)并将其指向部署文件夹.../app_name/current/public

由于您正在使用Passenger,因此您应该覆盖重启任务以便为其工作。

config/deploy.rb

namespace :deploy do
  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

如何在我的服务器上设置Capistrano进行远程部署?

所有Capistrano需要的是SSH访问权限,具有足够的权限来部署,迁移,重新启动应用服务器等。只需按照getting started guide上的Capistrano website,您就可以立即启动并运行。< / p>

Capistrano需要访问您的SCM,您需要允许它连接到您的机器。所有Capistrano都会将您的代码签入到发布文件夹中,并从旧版本移动符号链接并重新启动您的应用服务器。

在从本地主机开发部署到完全不同的操作系统上进行部署时,您最关注的障碍是什么?

最大的障碍是迁移,测试,测试,测试和测试它们。您的应用程序中的错误很容易修复和重新部署,但迁移中的错误可能会导致数据丢失的麻烦。

答案 2 :(得分:0)

我建议使用Ubuntu服务器和deprec,因为它提供了大量的系统管理员配方,使事情变得更加容易。