テクノロジー 開発 非公開: EasyEngine を使用して Docker で WordPress をセットアップする方法?

EasyEngine を使用して Docker で WordPress をセットアップする方法?

EasyEngine on Cloud または VPS を使用して Docker で WordPress をセットアップする方法を簡単に説明します。

Docker はここ数年で目覚ましい成長を遂げており、現在も成長を続けています。スタートアップから企業に至るまで、あらゆる場所に存在します。

港湾労働者
港湾労働者

Docker には従来の VM に比べて優れた利点がいくつかありますが、この投稿はそれについて説明するものではありません。より深く学びたい場合は、この オンライン コース を受講することをお勧めします。

話題に戻ります…

Docker の利点を知っているか聞いたことがあるので、WordPress での使用を試してみたいと考えているはずです。技術的には、これを行う方法はたくさんありますが、作業を容易にする EasyEngine をチェックしてみましょう。

以下は Google Cloud でテストしましたが、技術的には、DigitalOcean、Linode、AWS、Alibaba Cloud などのクラウド ホスティングで動作するはずです。

Google Cloud インスタンスの準備ができました。

Googleクラウドインスタンス
Googleクラウドインスタンス

そして、rootとしてログインします

グーグルクラウドログイン
グーグルクラウドログイン

EasyEngine は、WordPress サイトを作成するサーバーにインストールする必要がある自動スクリプトです。それでは、次のコマンドを使用してインストールしましょう。

: EasyEngine は CentOS ではまだ動作しないため、Debian または Ubuntu を使用する必要があります。

 wget -qO ee rt.cx/ee4 && sudo bash ee

Docker などの必要なコンポーネントのインストールには数分かかります。プロンプトに戻る前に、次の情報が表示されます。

 Status: Downloaded newer image for easyengine/redis:v4.0.0
+-------------------+----------------------------------------------------------------------------------+
| OS                | Linux 4.15.0-1025-gcp #26~16.04.1-Ubuntu SMP Wed Nov 21 10:13:20 UTC 2018 x86_64 |
| Shell             | /bin/bash                                                                        |
| PHP binary        | /usr/bin/php7.2                                                                  |
| PHP version       | 7.2.13-1+ubuntu16.04.1+deb.sury.org+1                                            |
| php.ini used      | /etc/php/7.2/cli/php.ini                                                         |
| EE root dir       | phar://ee.phar                                                                   |
| EE vendor dir     | phar://ee.phar/vendor                                                            |
| EE phar path      | /root                                                                            |
| EE packages dir   |                                                                                  |
| EE global config  |                                                                                  |
| EE project config |                                                                                  |
| EE version        | 4.0.6                                                                            |
+-------------------+----------------------------------------------------------------------------------+
-----> Run "ee help site" for more information on how to create a site.

これは、EasyEngine がインストールされ、サイトの作成に使用できる状態になったことを意味します。要件に応じて、作成できるサイトの種類は複数あります。

元:

  • ただのHTMLサイト
  • キャッシュや追加機能のない WordPress サイト
  • データベースを備えた PHP ベースのサイトを作成する
  • 自己署名または Let’s encrypt SSL 証明書を使用するサイト
  • マルチサイトの WordPress サイト
  • サブドメインまたはサブディレクトリ上の WP サイト
  • Redis キャッシュを備えた WP サイト

ご存知のとおり、複数の組み合わせが可能であり、いつでも 公式ドキュメント を参照できます。ここでは、 Redis を使用して WP サイト を作成しましょう。

 ee site create lab.com --type=wp --cache

上記では、EasyEngine に lab.com の WP サイトを作成してキャッシュを使用するように依頼しています。数秒かかりますが、以下のような成功の確認が表示されます。

 root@-lab:~# ee site create lab.com --type=wp --cache
Configuring project.
Creating WordPress site lab.com
Copying configuration files.
Starting site's services.
Downloading and configuring WordPress.
Success: Host entry successfully added.
Checking and verifying site-up status. This may take some time.

Installing WordPress site.
Success: http://lab.com has been created successfully!
Site entry created.
Creating cron entry
Success: Cron created successfully
+--------------------+----------------------------------------+
| Site               | http://lab.com                |
+--------------------+----------------------------------------+
| Site Root          | /opt/easyengine/sites/lab.com |
+--------------------+----------------------------------------+
| Site Title         | lab.com                       |
+--------------------+----------------------------------------+
| WordPress Username | stupefied-margulis                     |
+--------------------+----------------------------------------+
| WordPress Password | xxxxxxxxxxxx                           |
+--------------------+----------------------------------------+
| DB Host            | global-db                              |
+--------------------+----------------------------------------+
| DB Name            | lab_com                       |
+--------------------+----------------------------------------+
| DB User            | lab.com-bNmEbX                |
+--------------------+----------------------------------------+
| DB Password        | xxxxxxxxxxxx                           |
+--------------------+----------------------------------------+
| E-Mail             | admin@lab.com                 |
+--------------------+----------------------------------------+
| SSL                | Not Enabled                            |
+--------------------+----------------------------------------+
| Cache              | Enabled                                |
+--------------------+----------------------------------------+
root@-lab:~#

サイトをクラウド上で立ち上げて実行するのがいかに速いかわかりますか?

lab-e1544957015635
lab-e1544957015635

素晴らしい!

どのようなキャッシュメカニズムが使用されているかを確認してみましょう。

easyengine-redis
easyengine-redis

ご覧のとおり、WP Redis はサイトの作成とともにインストールされます。

WP は Docker 内で実行されていますが、すべてが EasyEngine スクリプトによって管理されるため、何もする必要はありません。ほとんどの場合、 ee スクリプトを操作することになります。ただし、Docker 内で実行されているサービスを調べたい場合は、以下をチェックしてください。

Docker 内のプロセス

docker ps 実行すると、実行中のサービスがすべて表示されます。

 root@-lab:~# docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                      NAMES
6f16b878d548        easyengine/cron:v4.0.0          "/usr/bin/ofelia dae…"   23 minutes ago      Up 23 minutes                                                  ee-cron-scheduler
18b7d9b4b8ac        easyengine/nginx:v4.0.0         "/usr/bin/openresty …"   24 minutes ago      Up 24 minutes       80/tcp                                     labcom_nginx_1
5e36d6998bba        easyengine/postfix:v4.0.0       "postfix start-fg"       24 minutes ago      Up 24 minutes       25/tcp                                     labcom_postfix_1
9fba9f5a2c77        easyengine/php:v4.0.0           "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       9000/tcp                                   labcom_php_1
d022dd6635d3        easyengine/mariadb:v4.0.0       "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       3306/tcp                                   ee-global-db
5c29ba40fa06        easyengine/redis:v4.0.0         "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       6379/tcp                                   ee-global-redis
cae69382b545        easyengine/nginx-proxy:v4.0.1   "/app/docker-entrypo…"   15 hours ago        Up 35 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   ee-global-nginx-proxy

ご覧のとおり、Nginx、PHP、MariaDB、Redis、Nginx などはすべて Docker 内で実行されています。

メモリ、IO、CPU の統計

docker stats リアルタイムの使用率統計を提供します

CONTAINER ID        NAME                        CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
6f16b878d548        ee-cron-scheduler           0.10%               6.246MiB / 1.65GiB   0.37%               1.82kB / 0B         582kB / 0B          7
18b7d9b4b8ac        labcom_nginx_1     0.00%               4.316MiB / 1.65GiB   0.26%               3.94MB / 3.74MB     0B / 0B             2
5e36d6998bba        labcom_postfix_1   0.00%               4.59MiB / 1.65GiB    0.27%               2.32kB / 688B       3MB / 0B            4
9fba9f5a2c77        labcom_php_1       0.00%               12.86MiB / 1.65GiB   0.76%               38.4MB / 7.11MB     18.3MB / 180kB      1
d022dd6635d3        ee-global-db                0.05%               97.02MiB / 1.65GiB   5.74%               1.71MB / 1.75MB     59.7MB / 98.8MB     32
5c29ba40fa06        ee-global-redis             0.12%               2.48MiB / 1.65GiB    0.15%               3.31MB / 23.1MB     7.11MB / 0B         4
cae69382b545        ee-global-nginx-proxy       0.11%               8.988MiB / 1.65GiB   0.53%               2.95MB / 3.2MB      23.2MB / 53.2kB     19

ログの場所

トラブルシューティングのためにログを時々確認する必要があることを理解しています。ここで見つけることができます。

Nginx と PHP – /opt/easyengine/sites/$SITENAME/logs

EE はよく構成されているので、さらに詳しく知りたい場合は、 ハンドブックを 確認することをお勧めします。 Docker 内で WordPress を実行するのは簡単になりました。

WPサーバー、最適化、セキュリティを自分で管理したくない場合は、すべてを代わって処理してくれるKinstaを試してみると、本業に集中できるようになります。

「 EasyEngine を使用して Docker で WordPress をセットアップする方法?」についてわかりやすく解説!絶対に観るべきベスト2動画

WordPressの Docker環境が簡単に。wp-envを使ってみよう
9.Docker ComposeでWordPressを | Docker入門講座

EasyEngine on Cloud または VPS を使用して Docker で WordPress をセットアップする方法を簡単に説明します。

Docker はここ数年で目覚ましい成長を遂げており、現在も成長を続けています。スタートアップから企業に至るまで、あらゆる場所に存在します。

港湾労働者
港湾労働者

Docker には従来の VM に比べて優れた利点がいくつかありますが、この投稿はそれについて説明するものではありません。より深く学びたい場合は、この オンライン コース を受講することをお勧めします。

話題に戻ります…

Docker の利点を知っているか聞いたことがあるので、WordPress での使用を試してみたいと考えているはずです。技術的には、これを行う方法はたくさんありますが、作業を容易にする EasyEngine をチェックしてみましょう。

以下は Google Cloud でテストしましたが、技術的には、DigitalOcean、Linode、AWS、Alibaba Cloud などのクラウド ホスティングで動作するはずです。

Google Cloud インスタンスの準備ができました。

Googleクラウドインスタンス
Googleクラウドインスタンス

そして、rootとしてログインします

グーグルクラウドログイン
グーグルクラウドログイン

EasyEngine は、WordPress サイトを作成するサーバーにインストールする必要がある自動スクリプトです。それでは、次のコマンドを使用してインストールしましょう。

: EasyEngine は CentOS ではまだ動作しないため、Debian または Ubuntu を使用する必要があります。

 wget -qO ee rt.cx/ee4 && sudo bash ee

Docker などの必要なコンポーネントのインストールには数分かかります。プロンプトに戻る前に、次の情報が表示されます。

 Status: Downloaded newer image for easyengine/redis:v4.0.0
+-------------------+----------------------------------------------------------------------------------+
| OS                | Linux 4.15.0-1025-gcp #26~16.04.1-Ubuntu SMP Wed Nov 21 10:13:20 UTC 2018 x86_64 |
| Shell             | /bin/bash                                                                        |
| PHP binary        | /usr/bin/php7.2                                                                  |
| PHP version       | 7.2.13-1+ubuntu16.04.1+deb.sury.org+1                                            |
| php.ini used      | /etc/php/7.2/cli/php.ini                                                         |
| EE root dir       | phar://ee.phar                                                                   |
| EE vendor dir     | phar://ee.phar/vendor                                                            |
| EE phar path      | /root                                                                            |
| EE packages dir   |                                                                                  |
| EE global config  |                                                                                  |
| EE project config |                                                                                  |
| EE version        | 4.0.6                                                                            |
+-------------------+----------------------------------------------------------------------------------+
-----> Run "ee help site" for more information on how to create a site.

これは、EasyEngine がインストールされ、サイトの作成に使用できる状態になったことを意味します。要件に応じて、作成できるサイトの種類は複数あります。

元:

  • ただのHTMLサイト
  • キャッシュや追加機能のない WordPress サイト
  • データベースを備えた PHP ベースのサイトを作成する
  • 自己署名または Let’s encrypt SSL 証明書を使用するサイト
  • マルチサイトの WordPress サイト
  • サブドメインまたはサブディレクトリ上の WP サイト
  • Redis キャッシュを備えた WP サイト

ご存知のとおり、複数の組み合わせが可能であり、いつでも 公式ドキュメント を参照できます。ここでは、 Redis を使用して WP サイト を作成しましょう。

 ee site create lab.com --type=wp --cache

上記では、EasyEngine に lab.com の WP サイトを作成してキャッシュを使用するように依頼しています。数秒かかりますが、以下のような成功の確認が表示されます。

 root@-lab:~# ee site create lab.com --type=wp --cache
Configuring project.
Creating WordPress site lab.com
Copying configuration files.
Starting site's services.
Downloading and configuring WordPress.
Success: Host entry successfully added.
Checking and verifying site-up status. This may take some time.

Installing WordPress site.
Success: http://lab.com has been created successfully!
Site entry created.
Creating cron entry
Success: Cron created successfully
+--------------------+----------------------------------------+
| Site               | http://lab.com                |
+--------------------+----------------------------------------+
| Site Root          | /opt/easyengine/sites/lab.com |
+--------------------+----------------------------------------+
| Site Title         | lab.com                       |
+--------------------+----------------------------------------+
| WordPress Username | stupefied-margulis                     |
+--------------------+----------------------------------------+
| WordPress Password | xxxxxxxxxxxx                           |
+--------------------+----------------------------------------+
| DB Host            | global-db                              |
+--------------------+----------------------------------------+
| DB Name            | lab_com                       |
+--------------------+----------------------------------------+
| DB User            | lab.com-bNmEbX                |
+--------------------+----------------------------------------+
| DB Password        | xxxxxxxxxxxx                           |
+--------------------+----------------------------------------+
| E-Mail             | admin@lab.com                 |
+--------------------+----------------------------------------+
| SSL                | Not Enabled                            |
+--------------------+----------------------------------------+
| Cache              | Enabled                                |
+--------------------+----------------------------------------+
root@-lab:~#

サイトをクラウド上で立ち上げて実行するのがいかに速いかわかりますか?

lab-e1544957015635
lab-e1544957015635

素晴らしい!

どのようなキャッシュメカニズムが使用されているかを確認してみましょう。

easyengine-redis
easyengine-redis

ご覧のとおり、WP Redis はサイトの作成とともにインストールされます。

WP は Docker 内で実行されていますが、すべてが EasyEngine スクリプトによって管理されるため、何もする必要はありません。ほとんどの場合、 ee スクリプトを操作することになります。ただし、Docker 内で実行されているサービスを調べたい場合は、以下をチェックしてください。

Docker 内のプロセス

docker ps 実行すると、実行中のサービスがすべて表示されます。

 root@-lab:~# docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                      NAMES
6f16b878d548        easyengine/cron:v4.0.0          "/usr/bin/ofelia dae…"   23 minutes ago      Up 23 minutes                                                  ee-cron-scheduler
18b7d9b4b8ac        easyengine/nginx:v4.0.0         "/usr/bin/openresty …"   24 minutes ago      Up 24 minutes       80/tcp                                     labcom_nginx_1
5e36d6998bba        easyengine/postfix:v4.0.0       "postfix start-fg"       24 minutes ago      Up 24 minutes       25/tcp                                     labcom_postfix_1
9fba9f5a2c77        easyengine/php:v4.0.0           "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       9000/tcp                                   labcom_php_1
d022dd6635d3        easyengine/mariadb:v4.0.0       "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       3306/tcp                                   ee-global-db
5c29ba40fa06        easyengine/redis:v4.0.0         "docker-entrypoint.s…"   24 minutes ago      Up 24 minutes       6379/tcp                                   ee-global-redis
cae69382b545        easyengine/nginx-proxy:v4.0.1   "/app/docker-entrypo…"   15 hours ago        Up 35 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   ee-global-nginx-proxy

ご覧のとおり、Nginx、PHP、MariaDB、Redis、Nginx などはすべて Docker 内で実行されています。

メモリ、IO、CPU の統計

docker stats リアルタイムの使用率統計を提供します

CONTAINER ID        NAME                        CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
6f16b878d548        ee-cron-scheduler           0.10%               6.246MiB / 1.65GiB   0.37%               1.82kB / 0B         582kB / 0B          7
18b7d9b4b8ac        labcom_nginx_1     0.00%               4.316MiB / 1.65GiB   0.26%               3.94MB / 3.74MB     0B / 0B             2
5e36d6998bba        labcom_postfix_1   0.00%               4.59MiB / 1.65GiB    0.27%               2.32kB / 688B       3MB / 0B            4
9fba9f5a2c77        labcom_php_1       0.00%               12.86MiB / 1.65GiB   0.76%               38.4MB / 7.11MB     18.3MB / 180kB      1
d022dd6635d3        ee-global-db                0.05%               97.02MiB / 1.65GiB   5.74%               1.71MB / 1.75MB     59.7MB / 98.8MB     32
5c29ba40fa06        ee-global-redis             0.12%               2.48MiB / 1.65GiB    0.15%               3.31MB / 23.1MB     7.11MB / 0B         4
cae69382b545        ee-global-nginx-proxy       0.11%               8.988MiB / 1.65GiB   0.53%               2.95MB / 3.2MB      23.2MB / 53.2kB     19

ログの場所

トラブルシューティングのためにログを時々確認する必要があることを理解しています。ここで見つけることができます。

Nginx と PHP – /opt/easyengine/sites/$SITENAME/logs

EE はよく構成されているので、さらに詳しく知りたい場合は、 ハンドブックを 確認することをお勧めします。 Docker 内で WordPress を実行するのは簡単になりました。

WPサーバー、最適化、セキュリティを自分で管理したくない場合は、すべてを代わって処理してくれるKinstaを試してみると、本業に集中できるようになります。

「 EasyEngine を使用して Docker で WordPress をセットアップする方法?」についてわかりやすく解説!絶対に観るべきベスト2動画

WordPressの Docker環境が簡単に。wp-envを使ってみよう
9.Docker ComposeでWordPressを | Docker入門講座