2013-08-24 23 views
1

從零開始,這個(Ubuntu 12.04,64位)由其他開發人員安裝的vps從未有過這樣的問題。在rails控制檯中可用的env變量,但在應用程序中不可用

.bashrc文件我的問題:

export FACEBOOK_ID=123456789 
export FACEBOOK_SECRET=987654321 

現在在終端,如果我輸入env我看到這些變量。 如果我打開rails console和類型ENV["FACEBOOK_ID"]ENV["FACEBOOK_SECRET"]我也可以看到合適的值。

的問題是,我有一個視圖文件中使用FACEBOOK_ID在應用程序和我一起做:

<%= ENV["FACEBOOK_ID"] %>

在本地計算機這將返回正確的值,在生產環節上VPS返回沒有。 我的想法是vps設置不正確,我找不到apache或ngnix,並且該應用程序位於var/www/apps/app_name/

什麼可能是錯的,我怎樣才能得到這個env變量在我的模板?

更新

在根目錄中可用文件:

.bash_profile .bashrc .cshrc .zprofile .zshrc 
+0

你可以檢查用戶在VPS上運行應用程序是否設置了變量?像''系統「whoami」'在紅寶石和確保在用戶返回的家庭文件夾,你有一個文件設置變量 – mdemolin

+0

@mdemolin它是唯一的根用戶在這個VPS – rmagnum2002

+0

你最好避免以root身份運行應用程序,但那是另一回事。所以如果你以root的身份登錄vps並嘗試'$ FACEBOOK_ID',它會返回什麼? – mdemolin

回答

3

不要把它在當地的環境。部署應用時應該怎麼做?當你想在你的本地機器上開發另一個使用Facebook ID的應用程序時該怎麼辦?

使用Figaro寶石。它用於處理這種情況,env變量和私人數據。 env變量可以在app中的YAML文件中設置,不會被提交回購。你不會後悔。

+0

我有一個用於開發的fb應用程序,與我工作的任何rails應用程序我使用相同的變量,用於生產環境我將重命名該變量,以防在相同的vps上有更多的應用程序,但是據我所知,只有一個。 – rmagnum2002

+0

+1謝謝你的寶石。必須是一個偉大的寶石,但問題仍然存在。我有其他公司的2臺vp服務器,我可以在應用程序中訪問env變量。這個有什麼問題? – rmagnum2002

+0

@ rmagnum2002,對不起,我不知道如何解決你關於機器上ENV的問題。我從來沒有在機器上設置ENV變量,我總是使用這個應用程序獨立的寶石。也許你刪除機器設置並嘗試給這個寶石嘗試一下? –

相關問題