新手问题 Ruby-China 完整布署步骤和方法

emerson · 2014年11月04日 · 最后由 lgn21st 回复于 2014年11月07日 · 3037 次阅读

请问各位:

本站 Ruby-China 有无朋友愿意教導我怎么安装本站所需环境和布署 Ruby China。

我在网上找了很多有关安装 Ruby China 的教学和资料,但都过时了

例如:

1.在 Ubuntu 上安裝 ruby-china: http://www.cnblogs.com/sjyyt/p/3164202.html

2.把我安装 ruby-china 的详细步骤发上来,寻求问题解决 https://ruby-china.org/topics/57

我尝试许多,但都出现错误或套件安装失败,非常折腾。

我的主机是 Linode VPS 日本带宽,熟悉 ubuntu、Mac 系統,期望有好人能一步步教我如何建置,我想借这机会学习下布署的过程,不論是博客或在下面留言都只要能詳細都可,非常感谢!

#1 楼 @chanshunli

请问我在安装过程能用 ubuntu 14.04 版本 OS 吗?

#2 楼 @emerson 关键是没有看到你的安装失败信息,如何确定你的问题呢?请把你的安装错误信息贴出来看一下!可以使用 14.04 没有问题!请确保已经那个安装好 ruby 以及所有的 lib 就像 @chanshunli 所说一样!

部署 RubyChina 跟部署任何其他 Rails 应用的区别不大,RubyChina 是一个复杂的应用,依赖很多东西。 这里给你一个简单的部署 Rails 应用的链接

关于 RubyChina 的各种依赖,参考 RubyChina 的 Readme

#5 楼 @lgn21st

Ruby-China 可以用 Nginx Passenger 来进行上线吗? 还是不需要装任何 nginx、apache 这类的 server,Ruby-China 本身就有了? 我正苦恼安装的顺序,可以教我吗?

7楼 已删除

#3 楼 @floger

安装的时候一直出现这样的问题,如何解决?

@emerson 说你没有安装成功 rails 呀,让看看你的 ruby 版本。还有 你运行 ./bin/setup 的日志。

#9 楼 @floger

ruby 2.1.2p95

运行 ./bin/setup 的日志怎麼看?

我是按照以下指南安裝的:

1.Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails

https://github.com/ruby-china/ruby-china/wiki/Ubuntu-14.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-Rails

2.快速安装 Ruby 的产品部署环境的批量脚本 https://github.com/huacnlee/init.d

@emerson 根据这里一步一步来: https://github.com/ruby-china/ruby-china#ruby-china

Install

git clone git://github.com/ruby-china/ruby-china.git
cd ruby-china
./bin/setup
# ensure that memcached has started up
rails s

#11 楼 @floger

谢谢你喔,我决定重装一次看看,若出现问题立马贴给你看!

#12 楼 @emerson 不要重装了,你前边不是根据哪两个链接安装玩了么?然后直接按照刚才给你这个一步步来就可以了。

14楼 已删除

#11 楼 @floger

最后出现这个问题,请问该怎解决?

我建议楼主分三步走:

  • 学习如何在本地跑 RubyChina,可以在本地把 development 模式运行起来
  • 学习在 Linux 上部署普通的 Rails 应用
  • 把第一步和第二步学到的知识结合起来

@emerson 楼主要不你先 hold 一下,我看了一下 RubyChina 的最新源码,使用的是 Rails 4.2.0.beta,略激进,所以找不到 i18n-0.7.0.beta1 是有可能的,要不等等 Rails 4.2.0 正式发布后 RubyChina 同步升级后再来折腾?

#17 楼 @lgn21st

好的,很感谢你的资讯,我在网上也找了很多资料,几乎没有解决方法,很折腾。

Rails 的更新速度实在太快了,个人学习步调跟不太上,真蛋疼...

#18 楼 @emerson 这不怪你,是 @huacnlee 太潮了,还没有正式发布的版本就用在 RubyChina 上,不过这是这个社区的光荣传统啦。

#15 楼 @emerson 这个问题还是建议升级一下 bundler 的版本,使用 1.7.3 的版本是没有问题的。不行在升级一下 ruby 的版本 使用 2.1.3 的

#19 楼 @lgn21st 我们公司的项目也用同样的版本

#20 楼 @floger

正确的升级 bundler 方式是apt-get upgrade bundler吗?

但我升級後的版本卻是 1.6.2

#22 楼 @emerson 是 gem install bunder

#23 楼 @floger

我已照你的意思把

1.Ruby 版本升级至:2.1.3

2.bundler 版本升级至:1.7.3

仍然还是报错,可以帮我看看吗?

#23 楼 @floger #17 楼 @lgn21st

我终于知道为何一直无法 bundle install 成功,原因在:

if ENV['USE_OFFICIAL_GEM_SOURCE'] source 'https://rubygems.org' else source 'https://ruby.taobao.org' end

'https://ruby.taobao.org' 研判是中国当地所设,对于海外使用 rubygems.org 是没问题的,若未清除此行反而无法正常连线。

source“https://ruby.taobao.org'去除后,成功运作。

成功截屏:

#23 楼 @floger #17 楼 @lgn21st

我现在只差一步......,能帮我看是什么问题嗎?

我执行了命令:

1.RAILS_ENV=production rake db:create db:migrate

2.rake assets:precompile

3.rails server

最后出现这一个画面,只差一步啊

還有最後一個問題:

Passenger Nignx 的配置:

server { listen 80 default; server_name 106.185.44.222; # 這裡填寫你真實域名 root /var/www/ruby-china/public; passenger_enabled on; }

最后指向 public 这样的目录是对的吗?

但我執行 rails server 後系統默認是:http://localhost:3000

该如何配置才正确?谢谢!

我感觉你贴图错了,我看到的是你启动 rails 的 development 模式,然后 Ctrl + C 停止了 Rails server。

#27 楼 @lgn21st

不,我沒有按 Ctrl + C

如果通过 nginx + passenger 部署的话,是不需要手动启动 rails server 的,nginx 收到访问请求后,passenger 会自动启动 rails instance,前提是你配置没有问题。你问配置是否正确,我建议你自己试试看,出错都会有错误信息的,可以通过错误信息去排查。

#29 楼 @lgn21st

謝謝你的解說,我剛才發現是 3000 port 被佔用了。 現在完全沒有任何錯誤訊息,也成功出現畫面,但這個好像不正常?

#29 楼 @lgn21st

我的 nginx + passenger 配置是這樣:

server { listen 80 default; server_name 127.0.0.1; # 這裡填寫你真實域名 root /var/www/ruby-china/public; passenger_enabled on; }

#30 楼 @emerson 看到这样的信息,你应该去查 log

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册