2012-03-10 4 views
0

동일한 코드를 사용하는 2 개의 레일 환경이 있습니다. 하나는 준비 중이며 다른 작품은 준비 중입니다. 둘 다 동일한 '생산'레일 설정을 사용하여 실행됩니다.passenger/nginx - 환경 변수 전달 또는 승객 변수 전달

하지만 우리가 어떤 환경에 있는지 알고 싶습니다. 서버에서 환경 변수를 설정하고 레일 내부에서 환경 변수를 설정할 수 있다고 생각했지만, 콘솔에서 작동하는 동안 승객 뒤에있을 때 작동하지 않습니다.

export MC_TEST=true 

을하지만 실행의 nginx의의/승객은 동일한 환경 내에서 일하지 않는 것, 그 변수가 설정되지 않은 : 관리자 사용자 .profile 파일에

나는 있습니다.

나는 아마도 레일스 환경으로 돌아가려면 뭔가를 nginx.conf에 넣을 수 있다고 생각했지만 분명히 그 중 하나를 수행하지는 않습니다!

아무에게도 제대로 할 수있는 방법을 알려주시겠습니까? 어떤 상황에서도 루비/레일/앱 코드에서이 변수를 사용하지 마십시오. 다음과 같이

+1

심지어/etc/environment 파일에 놓아도 레일 환경으로 들어가는 것 같지 않습니다. ment – phil

답변

1

당신이 승객과의 nginx를 사용하는 경우 (즉, 승객의 nginx 설치에 포함) 귀하의 nginx 구성에 passenger_set_cgi_param MC_TEST true을 시도해보십시오

server { 
    server_name www.foo.com; 
    root /webapps/foo/public; 
    passenger_enabled on; 

    passenger_env_var DATABASE_USERNAME foo_db; 
    passenger_env_var DATABASE_PASSWORD secret; 
} 

https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_env_var