ローカルマシンで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"に追加してから、最初の回避策を試してから、元のバージョンとdreamhostのバージョンの両方を確認するためにpublic/index.php内に別の条件を追加しました。
// 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スクリプトで作業していないので、2番目と3番目の回避策を気にしませんでした。
TL; DR
だから、私の知る限りそれを理解して、私のオプションは、私自身のコンフィグシステム(別のファイルにapp_envを保存を作成するように思える公共/ index.phpの中で、そのファイルをロードするためのどちらかであります上記のコード例の 'production'の代わりに 'staging'というだけの意味で、app_envをapp_envでコード化してください。私が後者に行った場合、私のpublic/index.phpファイルを.gitignoreする必要があります。ちょっと変わったようです。これまでは、私はそのファイルを変更する必要がなかったし、私がそれを混乱させないと、完全に私のリポジトリの外に置くことはできません。 考えますか?提案?さらなる回避策?
あなたはどのウェブサーバを使用していますか? –
dreamhost.com、これは、今、右下がりです...不吉なことです。 – dsulli
私はそれが何を実行するソフトウェア、Apache、nginx、zendサーバーなどを意味します... –