我有两个(相同的)带有 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 Passenger
和nginx
。
如果我执行:
> sudo chown -R http:http ~/project/my_app/
我得到:
chown: invalid user: `http:http'