【チラ裏WP】開発環境と本番環境でconfig.phpを別々に用意するの(‘A`)マンドクセ
ローカル開発環境と本番環境で別にSQLを用意するのだけれど、config.phpはDB別に用意していて、サーバーに上げてからリネームして対処していました。別に手間というほどではないんだけど、めんどいので一本化。
ホスト名からドメイン名の本体部分だけで判断してるので、同じサーバー内で複数環境を用意してる人や、hoge.comとhoge.jpなど、本体部分の文字列が同一な人はそれなりに書き換えればよろし。
以下、config.phpに記述
// ホスト名を取得して、ドットでぶった切って配列に
$http_host_array = explode(".", $_SERVER["HTTP_HOST"]);
// 「.com」とかを無視したいので、後ろから二番目の文字列を取り出す
$num = count($http_host_array) - 2;
$DOMAIN = $http_host_array[$num];
// ↑ここ飛ばして、「hoge.com」などドメイン丸ごとで判断した方がベターかもねww
// $DOMAIN == "test-server" とりまテスト鯖をデフォ
$sql = [
'DB_NAME' => "テストサーバーのDB名",
'DB_USER' => "テストサーバーのDBユーザー名",
'DB_PASSWORD' => "テストサーバーのDBパスワード",
'DB_HOST' => "テストサーバーのDBホスト"
];
if ($DOMAIN == "vagrant") {
$sql = [
'DB_NAME' => "ローカルDB名",
'DB_USER' => "ローカルDBユーザー名",
'DB_PASSWORD' => "ローカルDBパスワード",
'DB_HOST' => "localhost"
];
} elseif ($DOMAIN == "hoge") {
$sql = [
'DB_NAME' => "本番環境DB名",
'DB_USER' => "本番環境DBユーザー名",
'DB_PASSWORD' => "本番環境DBパスワード",
'DB_HOST' => "本番環境DBホスト"
];
}
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', $sql["DB_NAME"]);
/** MySQL データベースのユーザー名 */
define('DB_USER', $sql["DB_USER"]);
/** MySQL データベースのパスワード */
define('DB_PASSWORD', $sql["DB_PASSWORD"]);
/** MySQL のホスト名 */
define('DB_HOST', $sql["DB_HOST"]);
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');
ローカルマシンの開発環境、テストサーバー、本番サーバーが全部違うという大袈裟な例ですがwww
この判別の仕方だと、hoge.comとhoge.jpなどでサーバー分けてる時とか、
test1.hoge.com と test2.hoge.com とかのケースだとちょいと不味い。
私がそういうやり方しないので上記のようにしてますが、一番間違いがないのは、
の文字列丸ごとで条件分けすることなのである。そりゃそうだwwww$_SERVER["HTTP_HOST"]
ディスカッション
コメント一覧
まだ、コメントがありません