老項目換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)
須要加
nginx

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 -tnginx: the configuration file /opt/nginx/conf/nginx.conf syntax is oknginx: configuration file /opt/nginx/conf/nginx.conf test is successfultty:[0] jobs:[0] cwd:[~]12:34 [root@a02]$ nginx -s reloadtty:[0] jobs:[0] cwd:[~]12:34 [root@a02]$ netstat -tlnpActive 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
相關文章
相關標籤/搜索