Microsoft Azure App Service 上で、コストパフォーマンス最強にWordpressの構築する (その2)

2020/04/22

App Service Azure SQLite Web Apps WordPress

前ポスト: Microsoft Azure App Service 上で、コストパフォーマンス最強にWordpressの構築する (その1)


WordPress ファイルの取得、および、SQLiteサポート構成に変更

手順1(アップロードするファイルの作成)

  1. WordPress本体をオフィシャルサイトからダウンロード
    https://ja.wordpress.org/download/

  2. WordPress用SQLiteプラグインのダウンロード
    https://github.com/jumpstarter-io/wp-sqlite-integration
    ※2015年以降更新されていないので、ガイドライン違反でWordPressプラグインサイトからはダウンロードできないので注意

  3. B.の手順でインストールするファイルをローカルで統合し、そのファイル群でZIPファイル化(Web AppsのAdvance Toolでデプロイする場合)

WordPressをインストールするWeb Appsの準備

手順1(Azure App Serviceの準備)

リソースグループをつかうことによって管理をしやすくする。以降、リソースを作成する際は、作成したリソースグループを利用


  1. リソースグループを作成

  2. A.で作ったリソースグループ内に無料枠のApp Service/Web Appsを作成
    Azure Insightsの可用性テストのテスト元のロケーションがあるリージョンに作成することをオススメ。そうすることで、pingテストする通信料を削減可能
    App Service Planは、Windows (無料プラン)/ PHP  で作成

手順2(PDO Driver for PHPのインストール)

‘PHP 7.2?以降では、SQLite用のPDO Driver for PHPが標準ではインストールされていないので、このドライバを手動で追加


  1. Azure App Service での PHP の構成方法( https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-php-configure) で作業

  2. 該当ドライバは、Web AppsにAdvanced Tools内のcmdもしくはpowershellを使ってコピー。ファイルの在処は D:\Program Files (x86)\PHP\v7.4\ext (Version 7.4の場合)。PHPのバージョンにあわせてコピーするドライバを変更

    1. ドライバをコピーするディレクトリを作成
      md d:\home\site\ext

    2. ファイルを該当php_pdo_sqlite.dllをディレクトリからコピー
      copy "d:\Program Files (x86)\PHP\v7.4\ext\php_pdo_sqlite.dll" d:\home\site\ext

    3. iniファイルを保存するディレクトリを作成
      md d:\home\site\ini

    4. Ini 設定を使用して構成 (https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-php-configure#configure-via-ini-settings )を参考に、以下のコードを extensions.ini ファイルをc.で作成したディレクトリに作成
      extension=d:\home\site\ext\php_pdo_sqlite.dll

    5. Ini 設定を使用して構成(https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-php-configure#configure-via-ini-settings )の通り、アプリケーションの設定で、PHP_INI_SCAN_DIR というキーに d:\home\site\ini を値で設定

    6. 一旦、Web Appsを再起動し、iniファイルを読み込ませる

    7. <? phpinfo(); ?> というindex.phpをweb appsのルートに配置し、phpinfo()を実行させ、pdo_sqliteがロードされているかどうか確認。確認できたら、index.phpを削除


次ポスト: