【全6回】知識ゼロからVPSでWebアプリ公開 #2 WordPressを一瞬で構築
はじめに
本連載は、超初心者が 「Dockerを使って自作Webアプリをサーバー公開する」 までのステップバイステップ講座です。
- 第1回:Dockerってなに? & Webサーバーを起動せよ
-
第2回:人気No.1 CMS「WordPress」を構築せよ(今回)
-
第2.5回:【Docker入門おまけ1】WordPressのCSSを「ローカルファイル編集」で書き換えて、Webの裏側を完全攻略する
- 第3回:オリジナルアプリ開発① 〜コードを書く〜
- 第4回:オリジナルアプリ開発② 〜コンテナ化〜
- 第5回:【実演】VPSへのデプロイ(世界へ公開)
- 第6回:守りの技術:バックアップとセキュリティ
前回の第1回では、docker run コマンドを使ってWebサーバーを1つ起動しました。
今回は、世界中のWebサイトの40%以上で使われている 「WordPress(ワードプレス)」 を自分のPCで作ってみます。
本来ならプロでも環境構築に1時間はかかる作業ですが、Dockerなら 3分 で終わります。
1. そもそもWordPressはどうやって動く?
WordPressは、単なる「表示する機能」だけでは動きません。記事の文章や設定データを保存しておく 「データベース(MySQLなど)」 が必要です。
- WordPressくん(アプリ): 画面を表示したり、記事を書く人。
- MySQLくん(データベース): 記事の内容を記録しておくノート。
この2人は常にペアで動く必要があります。
前回のように docker run を2回打って、それぞれを起動して、手動でつなぎ合わせるのは…正直めちゃくちゃ面倒くさいです。
そこで「Docker Compose」の出番
Dockerには、複数のコンテナをまとめて管理する 「Docker Compose(ドッカー・コンポーズ)」 という機能があります。
- Docker Run: 「チャーハン一丁!」と一品だけ注文するイメージ。
- Docker Compose: 「コース料理(前菜・スープ・メイン)」をまとめて注文するレシピ本のようなイメージ。
今回は、この「レシピ本(設定ファイル)」を1つ書くだけで、WordPress環境を一発で作ります。
2. 【演習】WordPress環境を作ろう
ステップ1:作業用フォルダを作る
まず、デスクトップに今回の作業用フォルダを作りましょう。
- デスクトップに
my-wordpressという名前の新しいフォルダを作成してください。 - ターミナル(Mac)またはPowerShell(Windows)を開き、そのフォルダに移動します。
# デスクトップのmy-wordpressフォルダへ移動
cd ~/Desktop/my-wordpress
# Windowsの場合は cd ~\Desktop\my-wordpress
ステップ2:魔法のレシピ「docker-compose.yml」を作成
フォルダの中に、docker-compose.yml (ドッカー・コンポーズ・ヤムル)という名前のファイルを作成してください。
※拡張子が .txt にならないように注意!
そして、以下のコードをそのままコピペして保存してください。
version: '3'
services:
# 1人目:データベース(記録係)
db:
image: mysql:8.0
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
# 2人目:WordPress(表示係)
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
db_data:
解説:レシピの中身
- services: これから作るコンテナたち(db と wordpress)。
- environment: パスワードなどの設定。今回は練習用なので簡単なパスワードにしています。
- ports "8000:80": ブラウザで
8000番ポートにアクセスするとWordPressが見れるように設定。- depends_on: 「db(データベース)が起動してからWordPressを起動してね」という指示。
ステップ3:起動コマンド実行!
準備は整いました。以下のコマンドを実行してください。
docker-compose up -d
-
up: レシピ通りにコンテナを作成・起動せよ。 -
-d: バックグラウンドで実行せよ。
初回は画像のダウンロードが入るため、1〜2分ほどかかります。
Creating ... done と表示されたら完了です!
3. ブラウザで確認しよう
Chromeなどのブラウザを開いて、以下にアクセスしてください。
感動の瞬間
WordPressの言語選択画面(またはセットアップ画面)が表示されましたか?
もし表示されたら、あなたはたった一つのファイルと一つのコマンドで、本格的なCMS環境を構築できたことになります!
- 言語で「日本語」を選択して「次へ」。
- サイトのタイトルやユーザー名などを適当に入力して「WordPressをインストール」。
- ログインして、管理画面を触ってみてください。
完全に普通のWordPressとして動作していますよね?
4. 後片付け(とても重要)
遊び終わったら、きれいに片付けましょう。
Docker Composeを使った場合は、片付けもコマンド一発です。
docker-compose down
-
down: コンテナを停止し、さらに削除まで行います。
Note: データはどうなる?
今回の設定(volumes)のおかげで、コンテナを消しても「記事データ(データベースの中身)」はPC内に保存されています。
もう一度docker-compose up -dすれば、さっき作った記事が残った状態で復活します。これがDockerの便利なところです!
よくあるトラブル
-
エラー:YAML format error
-
原因:
docker-compose.ymlの「インデント(字下げ)」がズレている可能性があります。 - 対処: 2行目や4行目の開始位置がズレていないか、半角スペースで揃っているか確認してください(タブキーは使わないほうが無難です)。
-
原因:
-
エラー:Port is already allocated
- 原因: 8000番ポートを他のアプリが使っています。
-
対処:
docker-compose.ymlの8000:80の部分を8081:80など別の番号に変えて、再度upしてください。
次回予告
既存のツール(WordPress)を使うのはとても簡単でしたね。
次回からは、いよいよ 「自分だけのオリジナルWebアプリ」 を作っていきます。Pythonを使って、世界に一つだけのアプリを開発しましょう!
- 第3回:オリジナルアプリ開発① 〜コードを書く〜 お楽しみに!