LoginSignup
2
2

More than 5 years have passed since last update.

Check! 試用版 Azure Web Apps の WordPress テンプレートのデータベースは?

Posted at

こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに

試用版 Azure Web Apps で WordPress のテンプレートを使用した場合のデータベースについて観察してみました。

どうやら、Azure Web Apps の MySQL In App を使うようです。(・ω・)ノ

試用版 Azure Web Apps の WordPress のデータベースをみてみる

試しに、試用版の Web Apps で、 WordPress のテンプレートを選択して作成してみます。作成した WordPress をひらくと、初回の管理者情報を入力した後、データベースの設定ができていないという警告が表示されます。

ですが、その警告を無視して記事を書いてみると、ちゃんと保存されます!

データベースは?

どういうことかしら?

wp-config.php のデータベース設定をみてみましょう。

実は、 MySQL In App と呼ばれる Azure Web Apps に内蔵された MySQL へ接続する処理が差し込まれているのでした。

wp-config.php
// ... <略> ...

$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';

foreach ($_SERVER as $key => $value) {
    if (strpos($key, "MYSQLCONNSTR_") !== 0) {
        continue;
    }

    $connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
    $connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
    $connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
    $connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', $connectstr_dbname);

/** MySQL database username */
define('DB_USER', $connectstr_dbusername);

/** MySQL database password */
define('DB_PASSWORD', $connectstr_dbpassword);

/** MySQL hostname */
define('DB_HOST', $connectstr_dbhost);

// ... <略> ...

もう少し種明かしをすると、MySQL In App の接続情報は、 MYSQLCONNSTR_localdb という環境変数として提供されていて、以下のようなフォーマットの文字列です。

MYSQLCONNSTR_localdb
Database=localdb;Data Source=127.0.0.1:<ポート番号>;User Id=azure;Password=<パスワード>

ですので、 wp-config.php では、この環境変数をパースしてそれぞれ設定している、という種明かしでした!

Epilogue - おわりに

小ネタですが…、これを応用すると、簡単に MySQL In App を使えそうですね!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2