1

我有两个(相同的)带有 nginx 配置的 rails 应用程序(与乘客一起使用):

> cat ./sites-available/app-production

server {
  listen 80;
  server_name app-development.mydomain.com;
  root /path/to/my/production/app/public;
  passenger_enabled on;
  rails_env production;
}

> cat ./sites-available/app-development

server {
  listen 80;
  server_name app-development.mydomain.com;
  root /path/to/my/development/app/public;
  passenger_enabled on;
  rails_env development;
}

两者都有一个./config/mongoid.yml:

development:
  sessions:
    default:
      database: app-development
      hosts:
        - localhost:27017
      options:
        consistency: :strong
  options:

production:
  sessions:
    default:
      database: app-production
      hosts:
        - localhost:27017
      options:
        consistency: :strong
  options:

但是如果我同时启动它们,我会看到它们使用相同的数据库:我更改了一些数据development,我也看到了这些更改production

如果这些还不够,还有什么其他配置。还是我有什么问题?

更新:

实际上我看不到应用程序是否在不同的环境中运行。如果我停止 mongodb,调试(错误)视图由两者呈现。看起来他们都在进行开发。如何强制乘客运行不同的环境?我以为这项工作是通过设置rails_env参数来完成的

更新 2:

所以,如果我调查mongo

> show dbs

  app-development    0.203125GB
  local (empty)

因此,不会创建生产数据库。

更新 3:

我还执行了:

rake db:create RAILS_ENV=production

在我的生产 Rails 应用程序中,但仍然没有效果。

更新 4:

正如这里所提议的,我删除了不能通过Passenger/Nginx强制Rails进入生产环境config.ru,但随后我得到一个错误Phusion Passenger

This application is a Rails 4 application, but it was wrongly detected as a Rails 1 or Rails 2 application. This is probably a bug in Phusion Passenger, so please report it.

更新 5:

现在(在我返回 config.ru 之后)它变得更糟 - 来自以下错误Phusion Passenger

https://github.com/mongoid/mongoid.git (at master) is not checked out. Please run `bundle install` (Bundler::GitError)

我这样做了bundle install,没有效果。

更新 6:

从这里没有签出... bundle install 没有修复帮助!

bundle install --deployment

现在安装所有的宝石。没有Phusion Passenger错误了,但我现在收到一个错误rails

Permission denied - /path/to/my_rails_app/tmp/cache/assets/development/sprockets/37b5a12047376b10a57191a10d3af30a rails error

而且我后面没有这样的文件/文件夹./tmp/

更新 7:

听起来像Permission denied in tmp的类似问题。但我不知道chown user:group我应该申请哪个?我有Phusion Passengernginx

如果我执行:

> sudo chown -R http:http ~/project/my_app/

我得到:

chown: invalid user: `http:http'
4

0 回答 0