Azure IaaS環境にWordPressを構築してみる②

 

皆さんこんにちは!

今回は、IaaS環境にWordPressを構築する、第二弾として、Webサーバの設定(以降Apache2)とWordpressに必要なPHPモジュールの設定をご紹介します。

第一弾はこちらからご参照ください。

 

おさらいとして、今回構築する環境を再掲します。

 

Virtual Machine    :Azure Virtual Machine (B2s)

OS                            :Ubuntu 22.04

Apache2                 :最新バージョン

PHP                         :8.2

MySQL                     :8.0

WordPress             :6.2

 

 

1. Webサーバの設定

Webサーバが動作しないとWordPressにアクセスができなくなります。手順そのものはシンプルですが、慎重に設定していきましょう。

 

1.1 Apache2インストール確認

まずはApache2がインストールされているかを確認するため、以下のコマンドを実行してみます。

※ここまでの手順でいけば、デフォルトでインストールされていることが多いです。

 

$ sudo systemctl status apache2

 

Activeが出れば正常にインストールされています。

インストールされていないと、”apach2.service could not be found”と表示されます。

インストールする場合は、コマンドで実行します。

$ sudo apt install apache2

 

先ほどインストール確認で利用した同じコマンドを実行します

$ sudo systemctl status apache2

 

これでインストール完了です。

もちろん、webサーバなのでブラウザからアクセス確認します。

※念のため、htmlファイルが配置されているか確認してから、動作確認することをおすすめします。

下記のコマンドを実行してみてください。

 

$ cd /var/www/html

$ ls -ltr

index.htmlファイルが配置されていれば大丈夫です!

 

ブラウザのアドレスバーに、http://ipアドレス/index.htmlを入力することで確認ができます。

がその前に!

 

1.2 ネットワークセキュリティグループの設定

第一弾でのAzureVM設定を思い出してみると、ブラウザでアクセスするためのポート(今回では80:http)を開放していません。

ですので、一旦Azure Portalまで戻ります。

 

AzureVMに対する外部からのアクセス制御に関する設定した記憶がない場合は、Network Security Group(NSG)がデフォルトで制御しています。

ネットワークセキュリティグループについての解説はこちらから確認してみてください!

 

さて、ブラウザ用のポートを開放します。

アクセス確認後は利用する必要がないため、またポートを閉鎖します。

 

Azure Portalから作成したAzureVMページまで移動します

左上の「三」から「Virtual Machines」を選択し、作成したVM名を選択します。

概要画面が開きますので、左サイドメニューから「ネットワーク」を選択します。

 

受信ポートの規則を追加することで、設定することができます。

追加しない限り、外部からのアクセスは「拒否」の設定になっています。

ソース:Any

サービス:HTTP

アクション:許可

と設定し、誰でもアクセスできる状態にします。

一時的なアクセス確認用の設定のため、確認後はアクションを「拒否」にします。

 

1.3 動作確認

それでは改めて、http://ipアドレス/index.htmlを実行してみましょう。

Apache2 Default Pageページが表示されれば成功です!

ルートディレクトリの設定を含む細かな設定は、第二章以降、MySQLデータベースインストール後にご紹介します。

 

2.PHPモジュールのインストール

WordPressを安定稼働させるため、PHPの拡張モジュールのインストールが推奨されています。

ここでは、安定稼働に必要な最低限のモジュールをインストールします。

中には必須のものもありますので、漏らさずインストールしてください。

 

2.1 実行編

それでは、モジュールをインストールします。これまで通り、TeraTermを起動し、ターミナルから実行します。

※Tera Termへのログインは第一章をご確認ください

 

まずはリポジトリを最新化します。

$ sudo apt update

一気にダウンロードできますので、コマンドをまとめてあります。

 

$ sudo apt install php8.2-curl php8.2-dom php8.2-mbstring php8.2-mysql php8.2-imagick php8.2-xml php8.2-zip php8.2-gd php8.2-intl php8.2-soap

※実行中、インストール確認が入る場合がありますので、「Y」> Enterを押下ください。

 

下記のコマンドを実行し、モジュールがインストールされているかを確認することができます。

$ php -m

 

全てインストールされていれば次のステップに進みます。

 

2.2 モジュールの有効化

インストールしたphpモジュールはwebサーバが実行することになります。そのため、webサーバが読み込みできるように、モジュールを有効化しないといけません。

こちらもコマンド一つで有効化できます。

$ sudo a2enmod php8.2

※無効化する場合は、a2dismodで実行できます。

こちらの手順を実行する際、エラーが出るケースがあります。

筆者も遭遇したため、解消手順も合わせて記載します!!

まずは画面上に表示されている、mpm_eventを無効化します。

ただ、mpm_eventを無効化した場合、正常にWebサーバを再起動することができません。

なので、mpm_eventを無効化した後は、再起動せず、続けて下記のコマンドを実行します。

 

①  $ sudo a2dismod mpm_event
②  $ sudo a2enmod mpm_prefork
③  $ sudo systemctl restart apache2
④  $ sudo a2enmod php8.2
⑤  $ sudo systemctl restart apache2

これによって、webサーバ側で有効化されたモジュールと認識し、実行できるようになります。

ここの設定が漏れると、例えば、データベースにアクセスができなくなってしまいますので、注意してください。

 

今回は以上です!次回はMySQLデータベースのインストール手順からご紹介します!

 

 

 

 

この記事を書いた人

森 信之介
テクニカルマーケターとして、ブログ執筆、セミナー講師を行っております!