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

皆さんこんにちは!

 

今回は、IaaS環境にWordPressを構築する、第三弾として、MySQLのインストールから、追加で必要なWebサーバの設定までご紹介します!

 

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

第一弾URL:Azure IaaS環境にWordPressを構築してみる① Azure IaaS環境にWordPressを構築してみる① | Azure導入支援デスク (nissho-ele.co.jp)

第二弾URL:Azure IaaS環境にWordPressを構築してみる② | Azure導入支援デスク (nissho-ele.co.jp)

 

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

 

Virtual Machine    :Azure Virtual Machine (B2s)

OS                            :Ubuntu 22.04

Apache2                 :最新バージョン

PHP                         :8.2

MySQL                     :8.0

WordPress             :6.2

 

 

1.MySQL – インストール

WebサーバとPHPインストール・有効化まで完了しましたので、続いてMySQLのインストールを進めていきましょう!

 

1-1.MySQLインストール

まずは、リポジトリにMySQLがインストールされているか確認します。

 

呪文みたいなってきましたが、まずはリポジトリを更新します。

$ sudo apt update

 

更新が完了したら、MySQLがリポジトリにあるか確認します。

$ apt-cache policy mysql-server

MySQL8.0がインストール可能なことを確認できました。

それではインストールを進めます。

以下のコマンドを実行します。

$ sudo apt install mysql-server-8.0

インストールする場合に、以下の画像のようなダイアログが表示される場合があります。

OK と操作し、apache2を選び、またOKと押下していただければ大丈夫です。

 

インストールが完了したら、サービスが起動しているかも合わせて確認してみます。

$ systemctl status mysql.service

 

緑色で、Active (running)となっていれば正常に稼働しています。

もし、起動されていないようでしたら、以下のコマンドを実行します。

$ sudo systemctl start mysql.service

 

また、サーバ起動時に自動で起動するよう設定しておくこと管理がしやすくなります。以下のコマンドを実行しましょう。

$ sudo systemctl enable mysql.service

 

ただ、デフォルトで設定されていることが多いため、もし、インストール後、サービスが起動していないようでしたら、自動起動設定までしておくことをおすすめします。

 

それではDBに管理者(root)でログインしてみます。

$ sudo mysql -u root -p

今回はパスワードを求められますが、設定しないため、何も入力しないで問題ありません。この後設定します。

ログインできることを確認しました!

 

1.2 MySQL 設定

それでは、MySQLの設定編です。

ここで設定した内容をそのままWordpress定義ファイルに埋め込む必要がありますので、漏れなく実施していきましょう。

 

まずは、管理者ユーザ(root)にパスワードを設定します。

先ほどの操作ですでにDBには接続済みかと思いますので、以下のクエリを実行します。

mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ご自由なパスワード’;

無事パスワードが変更されました。

では、次に、Wordpressのデータを保存するテーブルと、Wordpressの代理としてテーブルにデータを書き込むユーザを作成します。

 

テーブル名は自由に設定いただいて問題ありません。

テーブル名は定義ファイルに必要なため、ここでしっかりとメモを取っておきましょう。

mysql > CREATE DATABASE T_WORDPRESS_SITEINFO;

テーブルが作成されました。

続けて、ユーザを作成します。

mysql > CREATE USER ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘自由なパスワード’;

クエリが実行されました。

 

最後に、今作成したユーザに、T_WORDPRESS_SITEINFOテーブルに操作権限を付与します。

mysql > GRANT ALL privileges on T_WORDPRESS_SITEINFO.* to ‘wordpressuser’;

権限の付与が完了しました。

それでは、最後に下記クエリを実行して終了です。

mysql > Flush Privileges;

 

改めて、ここでDBの情報をまとめてメモしておくと先の作業が楽になります。

メモに必要な項目:

〇テーブル名

〇テーブルに実行権限を渡したユーザ名

〇テーブルに実行権限を渡したユーザのパスワード

 

2. Webサーバ追加設定

さて、ここからは追加で必要なWebサーバの周りの設定をしていきます。

 

2.1 .htaccess用の設定

wordpressとwordpressのプラグインはwebサーバを通して読み込み、設定等調整がされるため、.htaccessファイルの有効化が必要です。

 

有効化するには、wordpressサイトのルートディレクトリを設定する必要があります。

今回はwordpress以外のアプリは入れませんので、/var/www/wordpressを入り口とします。

それでは、webサーバ認識できるように、wordpressサイト用の設定ファイルを追加します。

$ sudo vi /etc/apache2/sites-available/wordpress.conf

#下に注目してください

WordPress.conf内には以下を追記しましょう。

まずは、下の文章をコピー&ペーストします。

<Directory /var/www/wordpress/>

AllowOverride All

</Directory>

 

そして、キーボードの「i」と入力し>

#下に注目してください。

「INSERT」という文字が見えます。挿入状態です。

右クリック >

esc(エスケープ) >

#左したをご覧ください。INSERTという文字が消えています。

 

「:wq」と続けて入力することで、設定ファイルが保存されます。

 

$ cd /etc/apache2/sites-available/

$ ls -ltr

でファイルが作成されているか確認します。

無事作成されています。

 

ここで、Webサーバのルートディレクトリの設定も変更します。

$ vi 000-default.conf

12行目ある、DocumentRootも/var/www/wordpressに変更します。

今回は直接ファイルを編集します。

こちらもまずは、「i」を入力してから、編集状態にしてから変更します。

「html」を「wordpress」に変更してください。

編集が完了したら、esc(エスケープ) > 「:wq」の順で保存します。

 

繰り返しになりますが、今回はWordPressのみインストールする想定のため、WordPressというコンテンツ(フォルダ)が入ったディレクトリを頂点とした設定にしています。

同サーバに内に複数のアプリを動作させたい場合は、コンテンツをアプリごとに分けて配置させるのが一般的です。

 

その場合は、wordpress.confの設定を/var/www/html/wordpressとします。

また、DocumentRootは変更しないで、htmlの配下に作成すると、余分な微調整をする必要がないのでおすすめです。

 

次に、wordpressの機能である、パーマリンク(自由にブログのURLを変更できる機能)を利用できるように、モジュールを有効化します。

例)https://ドメイン名/blog/postname

※太字にしている部分を自由に変更することができる機能です。

 

リライトモジュールの有効化

$ sudo a2enmod rewrite

無事コマンドが実行されました。実際に、有効化するにはWebサーバを再起動する必要がありますので、この後実施します。

まずは、設定が問題ないか確認してから、再起動を進めます。

$ sudo apache2ctl configtest

DocumentRootである、wordpressディレクトリが設定されていないと注意されていますが、今は問題ありませんので、そのまま再起動を実施します。

※この時点で、http://ipアドレスでアクセスしようとすると、コンテンツが置かれていないため、何も表示されない状態になります。

 

それでは再起動します。

$ sudo sytemctl restart apache2.service

問題なく、サーバの再起動が完了しました。

 

今回はMySQLサーバのインストールから、wordpress運用に必要なwebサーバに関する設定を実施ました。

次回は、いよいよwordpressのインストールになります!

この記事を書いた人

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