[완료]php -i 와 phpinfo() 의 차이점은 무엇인가요?

허성규의 이미지

하나의 임시 변수를 선언하고 정의했습니다.
export TEST_VAR=100

그리고 나서 apache를 재시작 했구요.

# php -i | grep TEST_VAR
_SERVER["TEST_VAR"] => 100
_ENV["TEST_VAR"] => 100

하고 설정된 값이 나타나는데, 아파치에 접속해서 phpinfo() 함수를 호출했을땐
위와 같은 결과값은 빠져 있네요.

무엇때문에 이런걸까요?

세이군의 이미지

export명령이 수행된 shell과 apache가 실행된 shell이 다릅니다.

apache를 실행시키는 /etc/init.d/httpd 파일에 설정하지 않으면 아마 반영이 안될 것입니다.

허성규의 이미지

아..
그렇다고 apache 계정에 /bin/bash 를 할당할수는 없을것 같구..
사용자 변수인 TEST_VAR를 PassEnv 로 가져 올 수 있는 방법은 없는걸까요??
스크립트를 수정하는 방법 밖엔 없을까요? ㅋ

dell mini9 에 gentoo stage1 부터 깔기.

허성규의 이미지

혹시나 해서 nobody계정에 bash 쉘을 할당하고 .bashrc파일에 TEST_VAR를 정의하여
아파치를 재구동 시켜 봤지만 PassEnv 변수 TEST_VAR는 정의 되어있지 않다는 경고메시지가 뜨고
TEST_VAR변수는 나오지 않네요. ㅋ

dell mini9 에 gentoo stage1 부터 깔기.

허성규의 이미지

TEST_ENV 변수를 정의 해 주고
/etc/conf.d/env_whitelist 에 TEST_ENV를 추가하니
apache에서도 TEST_ENV 값을 가져가네요.
제가 궁극적으로 원했던건 사용자 쉘 환경변수를 apache + php 에서 가져 갈 수 있도록 하는 거였거든요..

dell mini9 에 gentoo stage1 부터 깔기.