在OpenShift中部署ROR应用


首先要注册OpenShift的账户,注册后使用Express Client创建域名

创建type为rack-1.1的应用
1.rhc-create-app -a railsapp -t rack-1.1 -l username
2.cd railsapp
创建Rails框架代码
1.rails new app
2.cd app
3.bundle install
4.rails generate controller home index
5.rm public/index.html
6.更改文件config/routes.rb中的router
root :to => “home#index”
7.rails generate scaffold Post name:string title:string content:text

把rails应用复制到openshift的应用的根目录覆盖其中的config.ru等

添加数据库支持

把文件.openshift/action_hooks/deploy中的下列行取消注释:

pushd ${OPENSHIFT_REPO_DIR} > /dev/null
bundle exec rake db:migrate RAILS_ENV=”production”
popd > /dev/null

有两种数据库供选择一种是SQLite另一种是MySQL
SQLite:

更改文件config/database.yml中Production中的值:
database: <%=ENV['OPENSHIFT_DATA_DIR']%>production.sqlite3

MySQL:

你需要使用rhc-ctl-app工具在你的应用中启用Mysql:

rhc-ctl-app -a APP -e add-mysql-5.1

更改文件config/database.yml中production db为:

production:
adapter: mysql
encoding: utf8
database: <%=ENV['OPENSHIFT_APP_NAME']%>
pool: 5
host: <%=ENV['OPENSHIFT_DB_HOST']%>
port: <%=ENV['OPENSHIFT_DB_PORT']%>
username: <%=ENV['OPENSHIFT_DB_USERNAME']%>
password: <%=ENV['OPENSHIFT_DB_PASSWORD']%>
socket: <%=ENV['OPENSHIFT_DB_SOCKET']%>

记得更改Gemfile文件,添加:

gem ‘mysql’

重新运行下bundle install去更新Gemfile.lock

部署:
1.git add .
2.git commit -a -m “Initial setup”
3.git push
你会看到你应用中的Gemfile和Gemfile.lock文件中gems都会被自动下载。


《 “在OpenShift中部署ROR应用” 》 有 3 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

验证码 * Time limit is exhausted. Please reload CAPTCHA.