Nginx的:建有passenger-install-nignx-module
的Nginx服務器名正則表達式匹配不設置passenger_app_env
乘客版本:5.0.28
操作系統:Ubuntu的14.04
我已經符號鏈接每個我的應用程序到自己的一套環境文件夾:
- /存儲庫
- /development.manager
- /應用
- ...
- /test.manager
- /staging.manager
- ...
- /development.manager
實際文件夾位於硬盤上的另一個位置。所有這些文件夾都是指向那個文件夾的符號鏈接。
問題是,Nginx似乎沒有正確設置乘客環境變量。檢查日誌會引發一個沒有意義的應用程序錯誤(並且nginx配置是自事情發生後唯一改變的)。此外,錯誤頁面顯示狀態:
因爲你正在運行在分期或生產 模式,該Web應用程序,錯誤的細節已經從本網頁 出於安全考慮省略。
這意味着它不使用開發環境,即使日誌中的root
目錄顯示development.manager
。這是當我通過URL訪問:http://manager-development/
。
下面是從我的nginx sites-enabled
配置相關的摘錄:
server {
listen 80;
server_name ~^manager-(?<environment>development|test)$;
passenger_app_env $environment;
passenger_ruby /home/vagrant/.rvm/gems/[email protected]/wrappers/ruby;
passenger_enabled on;
root /home/vagrant/apps/$environment.manager/public;
client_max_body_size 30M;
}
我有一種感覺,解決方案可能是我提供here,以及一個可能的錯誤配置nginx的塊答案的組合。
編輯:我明確地提出了在我的軌道錯誤的應用程序,輸出環境作爲一個字符串,它的字面意思是「$環境」 ......