部署 这里提供一台阿里云主机作为新手部署测试使用 (3 个月有效)

xinzhi · 2012年11月03日 · 最后由 xinzhi 回复于 2012年11月04日 · 7005 次阅读

闲置阿里云机器一台,当前安装的的是 Ubuntu 10.10 X64(不能连续重置同一个系统,这次是 10.10,下次重置只能是 12.04 等其他系统),有需要可以再更换。

服务器 IP(系统已重置): 42.121.123.230

用户名: ruby

密码: 由于工作日较忙的缘故,不方便监测主机的使用情况。请发送邮件到 xinzhi.xiang 爱特 me 点 com 索要密码。周末密码直接开放。

附一个 50MB 的又拍云测试空间:

upload_url: "http://ruby-china-1103.b0.upaiyun.com"
upyun_username: "ruby-china"
upyun_password: "Ruby-china1103"
upyun_bucket: "ruby-china-1103"

请大家尽量以部署 https://github.com/ruby-china/ruby-china 测试(公共帐号请勿部署敏感的私人代码),方便集中讨论各种问题。本人也是新手,折腾 rails 几个月,最近尝试线上部署,希望和大家一起交流呢。

具体怎么操作呢

楼主大赞~ 手比较快,已经安装好 rvm, ruby, rails,redis,pygments,ImageMagick 等软件了。 其实我已经在上面跑成功了😄 尝试线上部署,个人建议还是自己瞎折腾比较好。不了解过程,一键布暑,反而不利于学习。

  1. 安装 git

    sudo apt-get install git
    

    2.安装 rvm

    curl -L https://get.rvm.io | bash -s stable
    source ~/.bash_profile
    

    3.安装 readline 和 ruby 以及 rails

    rvm pkg install readline(后面报错了,提示rvm reinstall all --force,按之操作)
    

    安装 ruby:

    rvm install 1.9.3
    

    设置为默认版本:

    rvm use 1.9.3 --default
    

    创建 gemset:

    rvm use 1.9.3@rails32 --create --default  
    

    克隆 ruby-china 代码:

    git clone git://github.com/ruby-china/ruby-china 
    

    更改 ruby-china 源: 直接拷贝的.gemrc 文件:


    :backtrace: false :benchmark: false :bulk_threshold: 1000 :sources: - http://ruby.taobao.org/ :update_sources: true :verbose: true gem: --no-ri --no-rdoc 进入目录,运行 ruby setup.rb。提示:

    Checking Package Dependencies...

    Bundler [Yes] Python 2.5+ [Yes] Pygments 1.5+ [No] MongoDB 2.0+ [No] Redis 2.0+ [No] Memcached 1.4+ [No] ImageMagick 6.5+ [No] 安装之:sudo apt-get install imagemagick memcached mongodb memcached


    ①wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz ②下载配置文件和 init 启动脚本 (别人的配置文件,注意修改下文件中的用户和组) mkdir bin & cd bin wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis_server wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf sudo cp redis_server /etc/init.d/redis-server sudo chmod +x /etc/init.d/redis-server sudo cp redis.conf /etc/redis.conf ③初始化用户和日志路径 sudo mkdir -p /var/lib/redis sudo mkdir -p /var/log/redis sudo chown redis.redis /var/lib/redis sudo chown redis.redis /var/log/redis ④设置开机自动启动,关机自动关闭 sudo update-rc.d redis-server defaults ⑤启动 Redis sudo /etc/init.d/redis-server start ⑥启动 client 客户端连接: $ redis-cli redis> set foo bar OK redis> get foo "bar" 4.修改 config 目录下的 redis.yml 和 mongoid_yml 的配置文件,主要是主机 IP 和端口。 5.创建 MongoDB 目录:

    mkdir -p MongoDB/data MongoDB/log
    touch MongoDB/mongod.log
    wget https://raw.github.com/snails/mongodb-mac-startup/master/MongoDB/MongoDB bin/mongodb
    chmod +x bin/mongodb
    

启动 mongodb:

mongodb start

启动 redis:

redis_server start

____以上文件在/home/ruby/bin 目录____

启动 ruby-china:

rails s 

Start Sidekiq service:

bundle exec sidekiq -c config/sidekiq.yml 

管理员账号:Admin/ruby-china

怎么上这个阿里云服务器呢?需要几个步骤?

我知道了,ssh ruby@ip 可以上去。 好像有问题,rails server 报错。

更新增加又拍云帐号,希望能看到 Capistrano 和 Unicorn 实际部署 production 环境方面的尝试~

什么错:eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)

#7 楼 @chenge http://42.121.123.1:3000 有人已经开启了 3000 端口的进程,不能再启动了。需要的话,你排个时间,我帮你重置整个系统,你重新再来?每天只能重装一次系统。

明白了,谢谢。

#10 楼 @kewin It's Okay Now. Test it.

#10 楼 @kewin 前面是数据权限问题,导致失败。 > Failed opening .rdb for saving: Permission denied

@xinzhi

ngix 配置文件:/etc/nginx/conf.d/unicorn.conf, /etc/nginx/nginx.conf. unicorn 配置文件: /home/ruby/www/data/ruby-china/current/config

现在可以直接访问:http://42.121.123.1了。 btw.刚才的问题原因是 production.rb 中配置了 asset_url 为又拍云的 URL,将其注释掉即可。 /home/ruby/ruby-china/config/deploy.rb中的又拍云账号确定是对的?用unicorn部署后,获取的是http://ruby-china-files-dev.b0.upaiyun.com/assets/front-48c7410c99ba1a12daf380421fea1ca8.cssCSS,汗

ruby@AY12110309054716f2580:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7729       5841       1887          0        186       4776
-/+ buffers/cache:        878       6850
Swap:            0          0          0

内存 8G!

#14 楼 @search 哈哈,好像是几万块钱的机器呢,15M 带宽。

#13 楼 @DavidWei 成功案例,好好研究学习啦!

有期限么?

#18 楼 @virgil 还有半年多到期吧。

@xinzhi 哦,那还有时间也玩玩,谢谢了...同意@leekelby,有时间部署还是自己折腾一下吧..

试了一下,setup.rb 运行过程中,初始化数据库时遇到问题:

Install gems...                                                           [Done]
Seed default data...rake aborted!
The operation: #<Moped::Protocol::Command
  @length=179
  @request_id=4
  @response_to=0
  @op_code=2004
  @flags=[:slave_ok]
  @full_collection_name="ruby_china_dev.$cmd"
  @skip=0
  @limit=-1
  @selector={:findAndModify=>"mongoid.auto_increment_ids", :query=>{:_id=>:site_configs}, :update=>{"$inc"=>{:c=>1}}, :upsert=>true, :new=>true}
  @fields=nil>
failed with error "no such cmd"

Tasks: TOP => db:seed
(See full trace by running task with --trace)

UPDATE: 原因清楚了,Ubuntu 10.10 直接安装的 Mongodb 版本很低。

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