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/

所以我知道 log 与其他目录具有相同的权限。

我在 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 日志而不是使用其他东西。

再次感谢!

更新:添加set :linked_dirs, %w{... log ...}到 config/deploy.rb 后,日志的权限似乎是准确的,因为我现在在 log/unicorn.log 中获得了 unicorn stdout 和 stderr。

该问题似乎与我的独角兽设置有关,因为我无法成功重新启动或重新加载工作人员。

Capistrano 链接目录后的 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

0

抱歉,如果这是非常明显的答案,但是鉴于权限相同,您确定您正在生产中运行吗?

运行以下命令时会发生什么?

  tail -f log/production.log
于 2013-11-11T05:23:56.600 回答
-2

此问题是由于 Unicorn 在更新到 Capistrano v3.0.1 后无法在我的 Web 服务器上成功启动引起的。

我从应用程序中删除了 Unicorn,并用 Phusion Passenger 取而代之。一切都很好。

于 2013-11-12T06:01:09.687 回答