我使用figaro gem並創建了一個application.yml
文件,其中包含我的所有變量。這個application.yml文件位於一個共享文件夾(我正在使用capistrano),並且在當前活動應用程序目錄中符號鏈接到config/application.yml,但是我只能訪問rails控制檯中的變量而不是應用程序。我的憑據如下(真實詳細信息省略):ENV變量只能在生產控制檯中使用,不能在應用程序中使用 - Rails,Figaro Gem
注意:我已嘗試刪除「」語音標記,並將此列表與製作前綴匹配:每行有2個空格,而不是標籤,並且不包含解決一切。該文件的權限與用相同方式實現的databse.yml文件完全相同777。
application.yml
FFMPEG_LOCATION: "/path/to/ffmpeg"
EMAIL_USERNAME: "[email protected]"
EMAIL_PASSWORD: "password"
S3_BUCKET: "my_bucket"
AWS_SECRET_KEY_ID: "my_secret_key"
AWS_ACCESS_KEY_ID: "my_access_key"
我可以在生產控制檯訪問這些變量=>
Loading production environment (Rails 3.2.14)
irb(main):001:0> ENV["S3_BUCKET"]
=> "my-s3-bucket-name"
但是他們不返回的應用程序本身什麼。我設置了我的Linux機箱,遵循Ryan的優秀Pro railscast情節http://railscasts.com/episodes/335-deploying-to-a-vps
如何在應用程序本身中訪問這些變量?
如果有人需要更多的代碼只是喊。
EDIT 我除去費加羅寶石實現在以下railscasts教程所示的YAML配置:http://railscasts.com/episodes/85-yaml-configuration-revised。我認爲這實際上是figaro gem在做的事情,然而不是使用ENV變量,本教程使用了CONFIG [:variables],這似乎很有效。
乘客感染或獨角獸? – trh
我使用nginx,獨角獸,postgres – dodgerogers747
我會爲你的s3祕密直接使用yml而不是環境變量,但是如果你真的想要使用env的方式:對於nginx,你必須在主環境中設置env變量你的配置文件。您遇到麻煩的原因是nginx作爲自己的用戶運行,當您登錄並運行控制檯時,您是不同的用戶。 – trh