現在の位置: ホーム> 最新記事一覧> [PHPのPutenV機能を使用して環境変数を正しく設定および管理する方法は?手順の詳細な説明]

[PHPのPutenV機能を使用して環境変数を正しく設定および管理する方法は?手順の詳細な説明]

gitbox 2025-09-03

2。GetENVおよび$ _ENVで使用します

環境変数を設定した後、プログラムで読む必要があることがよくあります。使用するには2つの方法があります。

  1. getEnv()でそれを取得します

<span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG=true"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_DEBUG"</span></span><span>); </span><span><span class="hljs-comment">// 出力: true</span></span><span>
</span></span>
  1. $ _ENV Hyperglobal変数を通過します

特定の構成( php.ini変数_order設定に応じて)では、 putenvによって設定された値は$ _envに同期されます。

 <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"API_KEY=123456"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$_ENV</span></span><span>[</span><span><span class="hljs-string">"API_KEY"</span></span><span>]; </span><span><span class="hljs-comment">// 有効になっている場合,出力: 123456</span></span><span>
</span></span>

異なるサーバー環境とPHP構成が$ _ENVの可用性に影響する可能性があることに注意する必要があるため、 getENV()を使用して互換性を確保することをお勧めします。


3。Webアプリケーションのアプリケーションシナリオ

  1. 動作環境を区別します

    <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV=development"</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"APP_ENV"</span></span><span>) === </span><span><span class="hljs-string">"development"</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">"display_errors"</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
    }
    </span></span>
  2. データベース構成管理

    <span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST=127.0.0.1"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER=root"</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">putenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS=secret"</span></span><span>);
    
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(
        </span><span><span class="hljs-string">"mysql:host="</span></span><span> . </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_HOST"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_USER"</span></span><span>),
        </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">"DB_PASS"</span></span><span>)
    );
    </span></span>
  3. 機密情報保護<br> APIキー、サードパーティのサービストークンなどを環境変数に保存して、コードのハードコードを回避し、セキュリティを強化します。


4.予防策とベストプラクティス

  1. アクションの範囲

    • PutenVによって設定された環境変数は、現在のPHPプロセスに対してのみ有効であり、システム環境に持続することはありません。

    • サーバーの再起動後も環境変数を有効に保つ必要がある場合は、オペレーティングシステム構成ファイル( .bashrcまたは.envファイルなど)を介して設定する必要があります。

  2. 互換性

    • パフォーマンスはCLIモードとWebモードで一貫していますが、一部の管理環境にはPutenvに制限がある場合があります。

  3. 推奨されるプラクティス

    • .ENVファイル + PHPローダー( VLUCAS/PHPDOTENVライブラリなど)を使用して、環境変数を均一に管理します。

    • ハードコーディングを避けて、コード内のgetENVを使用して変数を取得します。