【问题标题】:What, where and how to upload Ruby on Rails application files to the VPS?什么、在哪里以及如何将 Ruby on Rails 应用程序文件上传到 VPS?
【发布时间】:2011-08-01 13:03:40
【问题描述】:

我正在使用 Ruby on Rails 3.0.9,我想发布我的网站。我已经将我的 VPS 设置为运行 Ubuntu 10.04 LTS 和 capistrano gem(我认为这是最好的)。现在,我需要做的是将所有文件上传到www/project_name 目录(我在Mac OS 上)...

我必须做什么才能做到这一点?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 web publish


    【解决方案1】:

    您不需要部署机器来安装 Capistrano。 Capistrano 自动执行了一系列任务,我建议您至少手动执行一项,这样您就知道发生了什么。迟早你会调试一些 Capistrano 任务,所以你迟早要弄清楚胆量。

    粗略地说,您需要做的基本上是在生产机器上复制您的开发环境。如果你有版本控制,你可以在你的生产机器上git clonesvn whateveritis。如果没有,您可以使用scp /local/rails/dir remoteuser@remotehost:www/projectname 对其进行 scp。

    此时,您实际上应该在服务器上完成剩余的工作。由于您已成功安装 Capistrano,我假设您熟悉使用 SSH 的基础知识。

    代码完成后,您必须安装先决条件。如果您使用的是 3.0.9,您应该能够运行 bundle install --deployment,其中部署标志基本上告诉 bundler 使用与您的开发机器上相同的 gem 集。

    完成后,实际使服务器联机将根据您的设置而有所不同。如果您使用的是非独立乘客,此时只需遵循众多指南中的任何一个。如果您正在运行独立的乘客或瘦或独角兽或任何其他独立的 Rails 服务器,请继续以守护程序模式启动它(因此当您结束 SSH 会话时它不会退出)并确保您看到生产标志.您可以在 sudo 中启动它并让它侦听端口 80(例如,sudo thin start -d -p 80),或者让它侦听更高编号的端口并在面向 WWW 的服务器上使用反向代理。关于如何反向代理的说明遍布互联网。

    如果您有任何问题,请告诉我。

    【讨论】:

    • 使用 capistrano 我在 VPS 上创建了 'project_name/current/public' 目录,我应该将我的 RoR 应用程序的所有 'public' 文件放在其中。这样对吗? - 那么,如果我使用 capistrano 创建了 'releases' 和 'shared' 目录,我是否还要上传 'project_name' 文件夹中的所有剩余应用程序文件? - 那么,我应该在本地机器上运行VPS托管服务提供的Terminal\Console中的所有命令吗?
    • 我想重申,我个人不鼓励在这个阶段使用 Capistrano,直到您对 Capistrano 的功能有了基本的了解。但是如果你必须使用 Capistrano,那么你永远不必使用 VPS 上的终端。使用 Capistrano,您只需调整配方 (config/deploy.rb) 以适合您的 VPS,然后运行 ​​cap deploy 即可。
    【解决方案2】:

    您拥有 Capistrano 部署解决方案的一半。通常Passenger 用作另一半,它位于服务器上并加载您的应用程序。为此,通常使用 SSH 密钥。有很多关于如何设置的教程。我最喜欢的作者之一是 Dan Benjamin,可以在他的博客 Hivelogic 上找到。

    已编辑以提供更多初学者信息:

    Capistrano begginer's 来自 Capistrano wiki 的指南。

    Passenger Stand Alone Guide 来自乘客网站。

    准备好后,请务必查看您选择的网络服务器的 other 指南。

    这些指南将为您提供进行本地 Passenger & Capistrano 部署所需的背景知识。这些指南提供了实现目标所需的知识。

    【讨论】:

    • 但是通过使用 capistrano 我可以上传我的应用程序文件还是必须使用 Filezilla 之类的东西?
    • 您可以使用 SSH 完成此操作。我的答案中的 Hivelogic 链接将引导您完成设置应用程序以进行部署的过程。此外,Capistrano 和Passenger 的文档都详细说明了如何使用SSH 进行部署。
    • 老实说,我还没有很好地理解 capistrano 到底是什么以及“部署”这个词的一般理解......我几乎完成了我的应用程序,我想在我的 VPS 上测试\上传但困难重重! Ruby on Rails 在这件事上非常复杂(对我来说)。
    • 首先,您必须了解您的工具。我使用 Capistrano 从入门指南更新了我的答案,该指南解释了使用 Capistrano 的内容和原因。
    【解决方案3】:

    通过 SSH http://alexeypetrushin.github.com/vfs/ssh_deployment.html 进行简单而简短的部署示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 2012-02-15
      • 2015-03-02
      • 2012-08-28
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      相关资源
      最近更新 更多