PHP .htaccess内に追加(SetEnv)した環境変数で開発環境/本番環境など動作環境を切り替える方法

.htaccess に SetEnv で環境変数を設定

下記のように .htaccess に SetEnv で環境変数を設定することが出来ます。開発中のプロダクトや運用中のプロダクトで環境毎に切り替えるために

# 本番環境
# SetEnv APP_ENV 'production'

# 開発環境(コメントを外して有効)
SetEnv APP_ENV 'develop'

# ローカル環境
# SetEnv APP_ENV 'local'

環境変数の取得と切り替え

getenv() で環境変数の値を取得

// .htaccess に設定した環境変数の値取得
$appEnv = getenv('APP_ENV');

環境切り替え

getenv() で取得した環境変数の値を条件に環境毎の設定ファイル等を呼び出します。

if ($appEnv == 'local') {
    $settings = require __DIR__ . '/app/config/settings_local.php';
} elseif ($appEnv == 'develop') {
    $settings = require __DIR__ . '/app/config/settings_develop.php';
} elseif ($appEnv == 'production') {
    $settings = require __DIR__ . '/app/config/settings_production.php';
}

設定ファイルの例

下記コードでは、データベースへの接続情報とメールサーバー情報を設定してあります。

<?php

return [
    'settings' => [
        'db' => [
            'type'     => 'mysql',
            'host'     => 'mysqlXXXX.xserver.jp',
            'dbname'   => 'データベース名DEV',
            'user'     => 'ユーザ名',
            'password' => 'パスワード'
        ],

        'mail' => [
            'connect_info' => [
                'host' => 'SMTPホスト',
                'port' => 'ポート番号',
                'user_name'  => 'メールアドレス(ユーザ名)',
                'password'   => 'パスワード',
                'encryption' => '',
            ]
        ]
    ]
];

コメント

タイトルとURLをコピーしました