WordPress on Azure App Service

# はじめに
もう何回も擦られたテーマですが、最近当社のコーポレートサイトを刷新した際にApp Serviceを使ってWordPressを構築したので、その際の備忘録として載せておきます。

# 手順
## App Service
AzureポータルからApp Serviceを選択。「作成ボタン」から「WordPress on App Service」を選択。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/675e11fe-4b33-fbd0-c61d-dde6ff527659.png)

サブスクリプション、リソースグループ等を適当に入力。名前はドメイン名となるので、外に出ても問題無い名前にしましょう。とは言え、任意のドメインを使用すると思いますので、分かりやすい名前で良いと思います。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/cb5e32e5-0120-81e5-d0a4-d87280b349c3.png)

## ホスティングプラン
大きく4種類のうちから選択可能です。テスト環境であればFreeで十分だと思います。カスタムドメインが使用できるのが、Basic以上なので本番環境を構築する場合はBasic以上を選択する必要がありますが、本番でもそれほどアクセスが無いのであればBasicでも十分かと思います。
当然ながら、Freeでは本番運用は厳しいと思います。プラン自体は作成後も変更可能です。
Standard以上だとステージングサイトを使用することができます。頻繁にデプロイするのであれば、Standard以上が良いと思います。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/8d2cac91-7a8b-0bc0-e94f-91ba0f5fc0c4.png)
他のアドイン、ネットワーク、デプロイ等は適当に設定。

## 作成後の設定
すぐにWordzPressを使える状態になりますが、細かい設定を見ていきましょう。

### 構成
構成メニューではPHPのバージョン、TLSのバージョンなどを設定できます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/30f1c426-04db-a597-0080-4e4c5d634579.png)
今回変更したところだけ抜粋。
+ マイナーバージョン
    + デフォルトは8.2だったような気がします。選択出来る中で最新の8.3を選択。
+ FTPのバージョン
    + デフォルトは何だっけ？ファイルを直接アップロードする必要があったのでFTPSのみ。
    + 基本的には無効にしておいた方が良いでしょう。
+ 常時接続
    + 本番の場合はオンに変更。オフにすると一定時間操作しないとアイドル状態になります。アイドル状態からアクティブになるまで、体感で数分かかります。

### バックアップ
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/85cc2528-1354-bf03-66a9-597adb643430.png)
デフォルトでは1時間に1回取得。これは変更不可。カスタムのバックアップを設定することができます。

### スケールアップ
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/5a8712b5-7876-2e2d-1265-57b354d8c154.png)
作成時には4つのプランからしか選択できませんでしたが、作成後はvCPU、メモリ等を変更出来ます。

### カスタムドメイン
作成したWordPressのドメインはデフォルトでは、<名前>.azurewebsites.netになります。コーポレートサイトでは当然このままでは公開出来ないので、任意のドメイン（カスタムドメイン）を設定します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/c4d0c988-7dc4-21bd-577d-804c3739f8d6.png)
左メニューの「カスタムドメイン」から「カスタムドメインの追加」。ドメインの追加画面が表示されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/fb8c8064-d7a3-cb1a-c60d-fdd02035a422.png)
ドメインプロバイダーはお名前.comなど外部サービスを使用しているのであれば、「その他のすべてのドメインサービス」を選択。TLSまたはSSL証明書はApp Serviceマネージド証明書を選択。
ドメインを入力すると以下の画面になります。ホスト名レコードを外部のドメインサービスに登録します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/8e749977-60d7-5e82-dd08-76b5d416ddc6.png)
お名前comの場合はこんな感じ。Aレコードとasuidの2つを設定。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/23cd5943-5c6f-9d59-fd41-e95229f9cb77.png)

DNS設定後、反映されるまで待ちます。しばらくしてから「検証」を押します。DNSが反映されていない場合はエラーになります。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/f8e1965e-0c67-825b-8008-89acd58d16c9.png)
検証が成功すると以下のようになります。そして「追加」。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/40295340-ba00-10c7-be27-6afefa67ab14.png)

追加されると以下のようになります。カスタムドメイン追加時にApp Serviceマネージド証明書を選択していた場合は、少し待てば「バインディングなし」から「セキュリティ保護」に変わります。
待っても変わらない場合は「バインディングの追加」をクリックして再度設定します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/f20ca078-a329-d727-a183-52a781d034f3.png)

## 接続
### SSH
SSHで接続することが出来ます。
左メニューの「開発ツール」→「SSH」。移動をクリックするとブラウザ上でターミナルが開きます。
![スクリーンショット 2024-12-04 12.22.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/21154115-0fb2-03ec-b6f9-c7a7e9f2dbd8.png)

### FTPS
設定でFTPSを許可している場合はFTPSで接続できます。
左メニューの「デプロイ」→「デプロイセンター」→「FTPS資格情報」に接続情報が載っています。

## その他設定
### PHPの設定
いわゆるphp.iniですが、詳細は公式を見てください。ルートディレクトリの.user.iniファイルを配置することにより設定可能です。
[PHP Content Management Systems (WordPress, Joomla!, etc.)](https://learn.microsoft.com/ja-jp/archive/blogs/azureossds/uploading-large-files-to-azure-web-apps#php-content-management-systems-wordpress-joomla-etc)

# 最後に
画像が黒塗りばかり。