我正在尝试上传全新安装的 Typo 6.1,我只是将其解压缩并选择 mysql 作为数据库。正如人们所期望的那样,它在本地运行良好。但是当我将它推送到 CloudFoundry 时,应用程序将无法启动。它也没有给我一个错误,它只是拒绝启动。
有没有其他人让 Typo 6 在 CloudFoundry 上运行,如果有,您采取了哪些步骤来配置它?
我正在尝试上传全新安装的 Typo 6.1,我只是将其解压缩并选择 mysql 作为数据库。正如人们所期望的那样,它在本地运行良好。但是当我将它推送到 CloudFoundry 时,应用程序将无法启动。它也没有给我一个错误,它只是拒绝启动。
有没有其他人让 Typo 6 在 CloudFoundry 上运行,如果有,您采取了哪些步骤来配置它?
是的,我在http://typo-jambay.cloudfoundry.com/上工作了
第 1 步 - 对 Gemfile 进行编辑,较新的 rake (10.0.3) 似乎不太满意,因此我们应该使用相同的小更新。
改变:
gem 'rake', '>= 0.9.2'
到
gem 'rake', '~> 0.9.2'
第 2 步 - 确保使用您计划使用的数据库运行 bundle install。我使用了 postgress,所以我让我的 config/database.yml 成为 config 中 postgres 版本的副本。
第 3 步 - 您可以使用这样的 manifest.yml 文件,只要您拥有最新版本的 vmc(gem install vmc --pre),vmc push 应该会处理所有事情:
---
applications:
- name: typo
framework: rails3
runtime: ruby19
memory: 256M
instances: 1
url: typo.${target-base}
path: .
services:
postgresql-ccdb5:
label: postgresql
Typo 6 有点像旧的 Rails 项目,但我有一份工作。它位于http://typo6.cloudfoundry.com
因此,要按照以下步骤进行部署;
克隆错字 6 存储库 -git clone git://github.com/fdv/typo.git
简化 Gemfile,确保 'mysql2' 在那里
source :rubygems
gem 'rails', '~> 3.2.6'
gem 'mysql2'
gem 'require_relative'
gem 'htmlentities'
gem 'json'
gem 'bluecloth', '~> 2.1'
gem 'coderay', '~> 0.9'
gem 'kaminari'
gem 'RedCloth', '~> 4.2.8'
gem 'addressable', '~> 2.1', :require => 'addressable/uri'
gem 'mini_magick', '~> 1.3.3', :require => 'mini_magick'
gem 'uuidtools', '~> 2.1.1'
gem 'flickraw-cached', :require => 'flickraw'
gem 'rubypants', '~> 0.2.0'
gem 'rake', '~> 0.9.2'
gem 'acts_as_list'
gem 'acts_as_tree_rails3'
gem 'fog'
gem 'recaptcha', :require => 'recaptcha/rails', :branch => 'rails3'
gem 'prototype-rails', '~> 3.2.1'
gem 'prototype_legacy_helper', '0.0.0', :git => 'http://github.com/rails/prototype_legacy_helper.git'
gem 'rails_autolink', '~> 1.0.9'
gem 'dynamic_form', '~> 1.1.4'
将 config/database.yml.mysql 移动到 config/database.yml
做一个bundle install
使用 vmc 部署,这是重要的部分。当询问它是什么类型的应用程序时,选择“其他”,然后选择“机架”。继续选择 ruby1.9 作为框架,并确保为应用程序分配了相当数量的内存,至少 128M。也向应用程序添加一个新的 MySQL 服务。此时,应用程序应该可以部署并启动。
如果您此时访问应用程序,您应该会看到 Rails 500 错误。这是因为数据库尚未播种。要为数据库播种,您需要在本地创建一个到数据库的隧道,以便您可以针对它运行 db:seed rake 任务。
像这样创建隧道vmc tunnel [name of the service]
,为客户端选择“无”,当隧道绑定时,您应该会看到弹出的数据库的凭据和名称。在另一个控制台窗口中修改 database.yml 文件,使其包含这些详细信息,确保地址是 127.0.0.1,而不是 localhost。
login: &login
adapter: mysql2
host: 127.0.0.1
username: uzkeDkKwBnkmC
password: pcf4oP3N2UbdV
port: 10000
development:
database: df67f078353974ccd8b090ccb726c9109
<<: *login
test:
database: typo_tests
<<: *login
production:
database: typo
<<: *login
在隧道仍然打开的情况下,运行 rake db:seed 任务 - bundle exec rake db:seed
,一旦完成(可能需要几分钟),安装应该很好!
希望这对您有用,有任何问题,请评论我的回答。
编辑:如果 jambay 的解决方案有效,请使用它,它更直接。
您是否能够通过 vmc logs 命令检查 Cloud Foundry 上的日志?