3

私はこれに対する解決策を一日中検索しましたが、不足しています...洞察に満足しています。前もって感謝します。

問題: log/production.rb ファイルは存在しますが、本番 Rails 4.0 環境では空です。log/development.rb は、Rails 4.0 の開発環境では想定どおりです。

ちょっとした背景: Rails 4、Ruby 2.0.0-p247、Capistrano 3.0.1、Unicorn 4.7.0、および nginx 1.4.1 の使用。

アプリのルートと権限:

drwxrwsr-x 13 deployer deployer 4096 2013-11-10 21:30 ./
drwxrwsr-x  7 deployer deployer 4096 2013-11-10 21:30 ../
drwxrwsr-x  8 deployer deployer 4096 2013-11-10 21:31 app/
-rw-rw-r--  1 deployer deployer 2015 2013-11-10 21:30 assets_manifest_backup
drwxrwsr-x  2 deployer deployer 4096 2013-11-10 21:31 bin/
drwxrwsr-x  2 deployer deployer 4096 2013-11-10 21:30 .bundle/
-rw-rw-r--  1 deployer deployer  473 2013-11-10 21:31 Capfile
drwxrwsr-x  6 deployer deployer 4096 2013-11-10 21:30 config/
-rw-rw-r--  1 deployer deployer  154 2013-11-10 21:31 config.ru
drwxrwsr-x  3 deployer deployer 4096 2013-11-10 21:31 db/
-rw-rw-r--  1 deployer deployer 1378 2013-11-10 21:31 Gemfile
-rw-rw-r--  1 deployer deployer 3418 2013-11-10 21:31 Gemfile.lock
-rw-rw-r--  1 deployer deployer  488 2013-11-10 21:31 .gitignore
drwxrwsr-x  5 deployer deployer 4096 2013-11-10 21:31 lib/
drwxrwsr-x  2 deployer deployer 4096 2013-11-10 21:30 log/
drwxrwsr-x  2 deployer deployer 4096 2013-11-10 21:30 public/
-rw-rw-r--  1 deployer deployer  249 2013-11-10 21:31 Rakefile
-rw-rw-r--  1 deployer deployer 3165 2013-11-10 21:31 README.md
drwxrwsr-x  8 deployer deployer 4096 2013-11-10 21:31 test/
drwxrwsr-x  3 deployer deployer 4096 2013-11-10 21:30 tmp/
drwxrwsr-x  3 deployer deployer 4096 2013-11-10 21:31 vendor/

したがって、ログには他のディレクトリと同じ権限があることがわかります。

config/environments/production.rb には魔法のようなものは何もありません。なぜなら、Rails が暗黙的に本番環境でログを作成すると想定していたからです。config.log_level を :info に設定しました。(特に、ログは開発環境で機能するためです。)

明らかに、環境の変更を考慮すると、問題は /log アクセス許可に関連するか、Rails 構成に欠けている明白な何かに関連している必要があります。

Capistrano 3 をデプロイ用にセットアップする際に、 deploy_to パス ( http://www.capistranorb.com/documentation/getting-started/authentication-and-authorisation/ ) に推奨されるパーミッションを使用しました。彼らは chmod -R g+s $deploy_to を望んでいたので、これがログの生成に影響を与えたのだろうか.

私はどんな解決策にもオープンですが、他のものを使用するのではなく、組み込みの Rails ログに固執することを好みます。

再度、感謝します!

更新: config/deploy.rb に追加set :linked_dirs, %w{... log ...}した後、log/unicorn.log でユニコーンの stdout と stderr を取得しているため、ログのアクセス許可が正確に表示されます。

ワーカーを正常に再起動またはリロードできないため、この問題はユニコーンのセットアップに関連しているようです。

カピストラーノがディレクトリをリンクした後の app_root/log の内容 (上記):

drwxr-sr-x 2 deployer deployer  4096 2013-11-11 06:23 ./
drwxrwsr-x 9 deployer deployer  4096 2013-11-11 06:20 ../
-rw-r--r-- 1 deployer deployer     0 2013-11-11 06:20 production.log
-rw-r--r-- 1 deployer deployer 11570 2013-11-11 07:09 unicorn.log
4

2 に答える 2

-2

この問題は、Capistrano v3.0.1 に更新した後、Web サーバーで Unicorn が正常に起動しなかったために発生しました。

アプリから Unicorn を取り除き、Phusion Passenger に置き換えました。すべては順調です。

于 2013-11-12T06:01:09.687 に答える