DockerコンテナにWordPressをインストール

Docker-Composeの環境にWordpressをインストールします。前回の記事では、Docker-ComposeでNginx+php+mysqlを連携しphpmyadminをインストールしました。その環境を使用してWordPressを追加インストールします。Docker公式のWordPressイメージはApache等とセットになっているので柔軟性に欠けると思い自前で準備することにしました。

1.コンテナ一覧

今回使用するコンテナを一覧に整理しました。前回からの追加変更はありません。

NO コンテナ

サービス名

用途 起動後状態 使用イメージ
1 sqldata mysqlの永続データ保持 非常駐 Busybox公式
2 wwwdata nginxの永続データ保持 非常駐 Busybox公式
3 nginx nginxタスクとしてホスト80ポートをコンテナへフォワード 常駐 Buildイメージ
4 php php-fpmタスク 常駐 Buildイメージ
5 db mysqlタスク 常駐 mysql公式イメージ
2.フォルダ構成

前回から引用です。今回はdata/wwwの下にwordpressを作成します。

3.WordPress用DB作成
(1)スクリプト準備

WordPressで使用するDBを作成します。DBとDB接続用ユーザー作成スクリプトのサンプルがこちらです。

気をつけるのは、ログイン可能なユーザーを作成している2行目で「wp_docker_usr@’%」としているところです。phpとmysqlが同一サーバ又は同一のコンテナで動作しているのであればいつもの’localhost’とできます。がしかし、今回はコンテナ連携をしますのでサーバをピンポイントで指定するかサーバを限定しないワイルドカード’%‘にする必要があります。

うっかりlocalhostとしているとphpmyadminでログインできません。(当初これではまりました…)

(2)スクリプト実行

phpmyadminにrootでログインし作成したDBとDB接続用ユーザー作成スクリプトを実行します。実行する手順を順に画面イメージで説明します。

ログイン後SQLタブを選択して以下の画面を表示させます。

スクリプトをコピーして画面にペーストし、右下の実行ボタンを押します。

下記画面が表示されれば成功です。

成功したら念のため、作成したユーザ―でphpmydminにログインできるか試しておきましょう。ログインできたなら次のWordpress導入に進みましょう。失敗した場合は、作成したスクリプトを見直してください。

4.WordPress導入
(1)インストール

当サイトの記事を参考にWordPressを導入します。今回の構成ではphpコンテナが参照するコンテンツデータはdata/www/にマウントされていますのでホスト側のフォルダにWordPressを配置すればコンテナ内から参照できます。最新版をダウンロードし解凍後配置します。

(2)wp-config.phpの設定

サンプルの設定ファイルをコピーしてwp-config.phpとし必要な設定を記述します。カレントディレクトリは/home/docker/test/phpsql/dataの前提です。

コピーしたwp-config.phpの下記項目を修正します。

NO DEFINE 意味 初期値 設定値
1 DB_NAME WordPress用のDB名 database_name_here db_wp_docker(例)
2 DB_USER DBに接続するユーザー名 username_here wp_docker_usr(例)
3 DB_PASSWORD 接続ユーザーのパスワード passwprd_here hogehogepass(例)
4  DB_HOST  DBのあるホスト名  localhost phpsql_db_1(コンテナ名)
5  AUTH_KEY  暗号化KEY  put your unique…  32文字以上の任意値
6 SECURE_AUTH_KEY  暗号化KEY  put your unique…  32文字以上の任意値
7  LOGGED_IN_KEY  暗号化KEY  put your unique…  32文字以上の任意値
8 NONCE_KEY  暗号化KEY  put your unique…  32文字以上の任意値
9  AUTH_SALT  HASHSALT  put your unique…  32文字以上の任意値
10  SECURE_AUTH_SALT HASHSALT  put your unique…  32文字以上の任意値
11 LOGGED_IN_SALT HASHSALT put your unique…  32文字以上の任意値
12 NONCE_SALT HASHSALT put your unique…  32文字以上の任意値
13 table_prefix テーブル名の前に付加する文字列 wp_ 通常は初期値(1DBで複数のWordpressサイト運用時にユニーク値を設定する)

wp-config.phpを修正すると所有権がrootになるので所有権を元に戻します。

(3)オンライン設定

対象となるサーバに接続して設定を続けます。http://192.168.1.9/wordpress (IPアドレス値は環境に合わせる)にブラウザでアクセスします。下記画面画表示されます。

サイトのタイトル、ユーザー名、パスワードなどの必要な項目を入力して「WordPressをインストール」を押下します。インストールが終了したら設定したユーザーとパスワードでログインします。下記ダッシュボードが表示されます。

サンプル投稿を多少修正して保存します。

一度ブラウザを落として再度、http://192.168.1.9/wordpressにアクセスします。

修正したサンプル投稿が表示されました。WordPressをDockerコンテナ連携環境でセットアップできました。コンテナを終了させても作成した投稿データはデータボリュームコンテナ内で保持されます。

5.感想・課題

Dockerでコンテナを連携させてWordpressを動作させるだけなら思ったよりも簡単でした。テスト環境としてならこれでも十分ですが、実運用するとなるとコンテナとホストのアクセス権の設定や、各コンテナで出力するログの管理などまだまだ課題が残ります。今後はこの辺を探っていきたいと思います。

スポンサーリンク
レクタングル大広告




レクタングル大広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大広告