로컬 컴퓨터에서 Zend MVC를 개발 중이며 준비를 위해 DreamHost 사이트를 사용하고 있습니다. ,환경 변수 관리 우수 사례
에 MyProject/공공/htaccess로이 줄을 포함하십시오 zend quick start에 따라, 내 로컬 컴퓨터에서 나는 다음과 같이 프로젝트의 공개 디렉토리에 .htaccess 파일 내에서 개발 내 APPLICATION_ENV 설정
"그러나 SetEnv APPLICATION_ENV 개발은"
이 로컬 잘 작동합니다. 하지만 내 준비 서버에서 내 app_env를 사용하려고하면 사용할 수 없습니다. 이 thread은 아마도 suexec이 백그라운드에서 실행 중이라고 제안했습니다. 나는 약간 파기를하고 충분히, Dreamhost blocks custom environment variables를했다.
"HTTP_"를 "APPLICATION_ENV"에 추가하고 public/index.php 내에 또 다른 조건을 추가하여 DH에서 제안한 첫 번째 해결 방법을 시도하여 원본 호스트 호스트와 dreamhost 호스트 호스트 모두 확인합니다.
// Define application environment
defined('APPLICATION_ENV') || define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') :
(getenv('HTTP_APPLICATION_ENV') ? getenv('HTTP_APPLICATION_ENV') : 'production')));
이것은 나를 위해 작동하지 않았습니다. ssh에서조차도 명령 행에서 'env'를 실행하면 내 application_env가 나열되지 않습니다. CGI 스크립트로 작업하지 않으므로 두 번째 및 세 번째 해결 방법을 신경 쓰지 않았습니다.
TL; DR
그래서, 지금까지의 내가 그것을 이해, 내 옵션, 내 자신의 설정 시스템 (다른 파일로 app_env을 저장을 만들 것 같다 공공/index.php를에서 해당 파일을로드하는 중입니다 옵션 2를 고려해 볼 가치가있는 것보다 더 많은 작업을하거나 app_env를 기본 위치에 '단단하게'코딩하십시오. 위의 코드 예제에서 '생산'대신에 '준비'라고 말하면됩니다. 만약 내가 후자와 함께 간다면 .gitignore public/index.php 파일을 만들어야하는데, 이것은 약간 이상하게 보입니다. 그 전에는 필자가 그 파일을 변경할 필요가 없었으며, 파일을 엉망으로 만들지 않는다면 더 좋을 것이라고 생각할 것입니다. 생각 하시겠습니까? 제안? 추가 해결 방법은 무엇입니까?
어떤 웹 서버를 사용하고 있습니까? –
dreamhost.com. 지금 당장은 불만 스럽습니다. – dsulli
어떤 소프트웨어가 실행되는지, 아파치, nginx, 젠드 서버 등 ... –