AWS、GCPと比較してイマイチ存在感の薄いAzure
とはいえ、3大クラウド(だと思っている)の一翼を担うクラウドと言うことで、同じ用にWordpressのCDを構築してみます
リソースグループを作成
Azureではリソースグループという単位で管理を行うようなので、まずはリソースグループを作成します




リソースグループが作成されました
AppServiceを作成する
AWSやGCPでは仮想マシンを作成しLEMP環境を作成しましたが、AzureではPaaSを利用します(無料プランの関係で)
PaaSのため、PHPやNginXと言ったWordpressを動かすための環境が整っている状態となります




CIの設定
CIを設定します
MicrosoftがGitHubを買収したことで、他クラウド(AWS、GCP)よりも親和性が高いように感じました
作成したサービスで以下の設定を行います
SCM基本認証の発行資格情報→チェック
FTP基本認証の発行資格情報→チェック



次にGitHub側で設定を行います


環境変数の設定は以下のとおりです
AZURE_WEBAPP_PUBLISH_PROFILE
→.PublishSettingsの中身をまるごと貼り付け
AZURE_WEBAPP_NAME
→App Serviceの名前.PublishSettingsは、AppServiceの「発行プロファイルのダウンロード」でダウンロードできます
GitHubのリポジトリの構成は以下のようになっています

GIthub Workflowは以下の内容で作成しました
name: Deploy to Azure App Service
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to Azure App Service
uses: azure/webapps-deploy@v2
with:
app-name: ${{ secrets.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: .GitHubにプッシュすると、CDが動くはずです

DBセットアップ
WordPress用DBのセットアップを行います
AzureだとMySQLフレキシブルサーバーという機能を使います


以下の設定で作成しました
(管理者のログイン の項目がパスワードぽくなっていますが、ここには管理ユーザーIDを指定します)

以下の設定を行い、Azure内のサービスから接続できるようにしておきます

ローカルから接続できるか確認してみます

WordPress用のデータベースを作成しておきます
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
EXIT;トラブル対応
以上の設定でWordpressがインストールできるはずですが、アクセスしたところCSSが適用されておらず、インストールにも失敗しました

wp-config.phpに以下の設定を行うことで解決できました

以上
ということで、簡単ですがAzureでCDを設定したときのメモでした
AWS、GCPと比較して、UI周りが使いにくい印象・・・
このご時世、メニューも文字化けしてますしね

CD自体は簡単に設定できるのは良いと思いますが、仕事以外で使うことは、無いかなぁ・・・