• 老项目换unicorn的大致步骤


    老项目换unicorn的大致步骤:

    (1)修改config/application.rb
    删除
     29     # assign log4r's logger as rails' logger.
     30     log4r_config= YAML.load_file(File.join(File.dirname(__FILE__),"log4r.yml"))
     31     YamlConfigurator.decode_yaml( log4r_config['log4r_config'] )
     32     config.logger = Log4r::Logger[Rails.env]
    新增memcached的配置
     29     config.cache_store = :dalli_store, *Settings.memcached.servers,
     30       { :namespace => Settings.memcached.namespace, :compress => true }

    (2)新建config/deploy/文件夹,
        新增production.rb
          staging.rb

    (3) 新增config/environments/
         development.rb
         production.rb
         staging.rb
         test.rb

    (4) 修改Gemfile,删除thin,新增unicorn
     37 gem 'dalli'
     38 gem 'unicorn'
     39
     40 group :test, :development do
     41   gem "rspec-rails", ">= 2.5.0"
     42   gem 'factory_girl', '2.6.4'
     43   gem 'factory_girl_rails', '1.7.0'
     44   gem 'faker', '1.1.2'
     45   gem 'forgery', '0.5.0'
     46   gem 'magic_encoding', '0.0.2'
     47   gem 'email_spec', '1.4.0'
     48
     49   gem 'net-ssh', '~> 2.0'
     50   gem 'capistrano', '~> 2.15.7'
     51   gem 'capistrano-rbenv', '1.0.5'
     52   gem 'rb-readline','0.4.2'
     53 end

    (5)修改配置config/settings.yml的配置
    181 memcached:
    182   namespace: xxx-xxxxx-cms-staging
    183   servers:
    184     - 127.0.0.1:11215

    (6)配置config/deploy.rb文件

    (7)bundle exec cap deploy:setup
    bundle exec cap deploy:cold

    部署可能出现的问题
    (1)Could not parse object(由于写错了config/deploy.rb 里的set :repository导致的)


    (2)不能自动识别config/application.rb的配置uninitialized constant Cms::Application::Settings
     修改Gemfile, gem "rails_config", '0.3.4'


    (3)/home/wz/.rbenv/versions/1.9.3-p545/lib/ruby/gems/1.9.1/gems /activesupport-3.0.8/lib/active_support/cache.rb:65:in `rescue in lookup_store': Could not find cache store adapter for dalli_store (cannot load such file -- active_support/cache/dalli_store) (RuntimeError)
    需要加

    gem 'dalli'

    最后一步,把项目文件夹目录下的nginx配置做一个软链接到
    $ nginx -t
    nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /opt/nginx/conf/nginx.conf test is successful

    $ ln -s /opt/app/ruby/tudou-tv-cms-unicorn/current/config/nginx.staging.conf /opt/nginx/conf/tudou_tv_cms.conf
    12:33 [root@a02]$ nginx -t
    nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /opt/nginx/conf/nginx.conf test is successful
    tty:[0] jobs:[0] cwd:[~]
    12:33 [root@a02]$ nginx -s reload
    tty:[0] jobs:[0] cwd:[~]
    12:33 [root@a02]$ netstat -tlnp | grep 52
    tcp 0 0 0.0.0.0:5200 0.0.0.0:* LISTEN 20263/nginx
    tcp 0 0 10.100.14.83:5308 0.0.0.0:* LISTEN 1526/cfservd
    tcp 0 0 0.0.0.0:5218 0.0.0.0:* LISTEN 1391/thin server (0
    12:33 [root@a02.test.stat.3g.vm.m6.youku]$ vim /opt/nginx/conf/nginx.conf
    这里把新的链接include进来
    include tudou_tv_cms.conf;
    tty:[0] jobs:[0] cwd:[~]
    12:34 [root@a02]$ nginx -t
    nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /opt/nginx/conf/nginx.conf test is successful
    tty:[0] jobs:[0] cwd:[~]
    12:34 [root@a02]$ nginx -s reload
    tty:[0] jobs:[0] cwd:[~]
    12:34 [root@a02]$ netstat -tlnp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:6500 0.0.0.0:* LISTEN 2347/thin server (0
    tcp 0 0 0.0.0.0:6565 0.0.0.0:* LISTEN 20307/nginx
    tcp 0 0 0.0.0.0:5030 0.0.0.0:* LISTEN 20307/nginx
    tcp 0 0 0.0.0.0:22022 0.0.0.0:* LISTEN 26901/sshd
    tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26927/snmpd
    tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 11834/uwsgi
  • 相关阅读:
    查询手机内联系人
    加载媒体库里的音频
    用ContentProvider获取通讯录联系人
    TensorFlow学习笔记:保存和读取模型
    如何「优雅」地标数据
    Bagging, Boosting, Bootstrap
    3D中的旋转变换
    PCA算法浅析
    SQL Server数据库邮件配置
    浅谈checkpoint与内存缓存
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5183242.html
Copyright © 2020-2023  润新知