manatee-itの備忘ログ

プログラム初心者のブログ。ruby on railsでWebサービスを作成中。(仕事が忙しくなかななか進まず) つまずいた所をなんでも記録。 環境:Ruby2.1 + Rails4.1.1 + Passenger + CentOS6.4(Apache + sqlite/MySQL)

rails + Passenger + apacheでの本番サーバへの移行設定で大混乱

環境:Ruby2.1 + Rails4.1.1 + Passenger + CentOS6.4(Apache + sqliteMySQL(予定))


結果的にうまく動作したが、何が必要で何が必要でなかったのかが、わからなくなったので、後で再調査しないと。


# vim config/environments/production.rb
config.serve_static_assets = true

# rake environment RAILS_ENV=production

以下は不要?
# mkdir public/images/
# cp -a app/assets/images/logo.png public/images/

今度は以下のエラーがerror_logに出力されている。
stderr: [ 2014-05-25 19:00:51.4101 23379/0x007f22ebc2a5c8(Worker 1) utils.rb:68 ]: *** Exception RuntimeError in Rack application object (Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`) (process 23379, thread 0x007f22ebc2a5c8(Worker 1)):

シークレットキーの生成
# rake secret
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....

apache環境変数として設定
# cat /etc/sysconfig/httpd
export SECRET_KEY_BASE="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...."


# ll remindertv/db/production.sqlite3

  • rwxrwxrwx 1 root root 7168 6月 1 22:36 2014 remindertv/db/production.sqlite3

# vim config/secrets.yml
development:
secret_key_base: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....

test:
secret_key_base: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

DBはdevelopmentとproductionで異なるため、DBを変更した場合は以下が必要。
# rake db:migrate RAILS_ENV=production
== 20140601070725 CreatePrograms: migrating ===================================

    • create_table(:programs)

-> 0.0016s
== 20140601070725 CreatePrograms: migrated (0.0018s) ==========================

# rake assets:precompile
I, [2014-06-02T21:20:56.017327 #31390] INFO -- : Writing /var/www/html/remindertv/public/assets/logo-xxxxxxxxxxxxxxxxxxxxxxxxxx.....png
I, [2014-06-02T21:20:56.025700 #31390] INFO -- : Writing /var/www/html/remindertv/public/assets/application-xxxxxxxxxxxxxxxxxxxxxxxxxx......js
I, [2014-06-02T21:20:56.103759 #31390] INFO -- : Writing /var/www/html/remindertv/public/assets/application-xxxxxxxxxxxxxxxxxxxxxxxxxx......css

開発環境のSQLiteのファイルをコピー
# cp -a development.sqlite3 production.sqlite3
# ll
合計 28

  • rw-r--r-- 1 root root 7168 6月 1 22:36 2014 development.sqlite3

drwxr-xr-x 2 root root 4096 6月 1 16:07 2014 migrate

  • rw-r--r-- 1 root root 7168 6月 1 22:36 2014 production.sqlite3
  • rw-r--r-- 1 root root 934 6月 1 16:10 2014 schema.rb
  • rw-r--r-- 1 root root 343 6月 1 16:03 2014 seeds.rb

dbディレクトリの権限を777にしてみる。
# chmod 777 db

アクセスできたが。。。他のサイトを参照させていただき、再度やり直す予定。

参考させて頂く予定のサイト
http://www.ark-web.jp/sandbox/wiki/284.html
http://d.hatena.ne.jp/zariganitosh/touch/20070108/1168246932

yahootvのパラメータ

検索結果をスクレイピングさせていただくYahoo!TVについて、検索パラメータの内容を確認しました。

検索例:キーワード「F1」、放送波「地上波、BS放送」、並べ替え「放送時間順」、エリア「神奈川」の場合。

http://tv.yahoo.co.jp/search/?q=F1&t=1%25203&oa=1&a=24

検索結果数は、放送波の選択内容にかかわらず、BS放送、CS放送、地上波の結果が表示される。

                                                                                      • -

検索キーワード:
?=(キーワード)

放送波:
t=1 BS放送 (%25201)
t=2 CS放送 (%25202)
t=3 地上波 (%25203)
※放送波を複数選択した場合はカッコ()内の値を付与する。

エリア:
a=23 東京
a=24 神奈川
a=25 群馬
a=26 茨城
a=27 千葉
a=28 栃木
a=29 埼玉

並べ替え:
oa=1 放送時間順
oa=2 「見たい」登録数順
oa=3 感想数順
oa=4 放送局順

ジャンル:
なし すべて
g=00 ニュース/報道
g=01 スポーツ
g=02 情報/ワイドショー
g=03 ドラマ
g=04 音楽
g=05 バラエティ
g=06 映画
g=07 アニメ/特撮
g=08 ドキュメンタリー/教養
g=09 劇場/公演
g=10 趣味/教育
g=11 福祉
g=15 その他

                                                                                      • -

nokogiriのエラー

環境:Ruby2.1 + Rails4.1.1 + Passenger + CentOS6.4(Apache + sqlite/MySQL)

nokogiri (1.6.2.rc2)を利用したタスク実行時にエラーが発生した。

-----------------------------------------------------------------------------------

Rakeタスク実行

# rake search:generate

rake aborted!

LoadError: cannot load such file -- nokogiri/nokogiri

/var/www/html/remindertv/lib/tasks/search.rake:8:in `block (2 levels) in <top (required)>'

LoadError: cannot load such file -- nokogiri/2.1/nokogiri

/var/www/html/remindertv/lib/tasks/search.rake:8:in `block (2 levels) in <top (required)>'

Tasks: TOP => search:generate

(See full trace by running task with --trace)

-----------------------------------------------------------------------------------

クラス実行

# rails runner Tasks::SearchTask.execute
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/2.1.0/nokogiri.rb:29:in `rescue in <top (required)>'
from /usr/local/lib/ruby/2.1.0/nokogiri.rb:25:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /var/www/html/remindertv/lib/tasks/search_task.rb:8:in `execute'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/runner.rb:62:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/runner.rb:62:in `eval'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/runner.rb:62:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:128:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:128:in `require_command!'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:95:in `runner'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'

-----------------------------------------------------------------------------------

Gemfileファイルに以下を追加して、bundle installを実行して対応した。

gem 'nokogiri'

 

Gemパッケージのインストールとか全然知らないのだけど、普通に必要な設定のようだ。