【2023年】これからブログを始める人へおすすめの書籍

Kissy

Wordpressローカル開発環境の作成方法(docker編)

作成: 更新:

Wordpressローカル開発環境の作成方法(docker編)

事前準備

事前にdockerとdocker-composeをインストールしておきます。インストール方法についてはこちらの記事を参考にしてください。
Windows10でdockerを使用する方法(docker on WSL2編)

Wordpressのインストール

  1. Wordpressの環境を作成するフォルダを作成します。
     WSL2ディストリビューションのターミナル上でWordpressプロジェクト用のディレクトリを作成します。ディレクトリを作成する場所はどこでも問題ありません。

     mkdir my-wordpress
    
  2. 作成したWordpressプロジェクト用のディレクトリに移動します。

    cd my-wordpress
    
  3. docker-compose.xmlを作成します。
     このファイルには、WordPressでサイトを作るために必要なSQLサーバー(ここではMySQLを使っています)、WordPressを作成するための設定を記載します。また、加えてMySQLサーバーをブラウザから管理するためのphpMyAdminを作成するための設定を記載しています。なお、MySQLのバージョンはアップデートされているかもしれませんので、適宜変えてください。

    version: '3.3'
    services:
       db:
         image: mysql:5.7
         volumes:
           - ./db_data:/var/lib/mysql
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: somewordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         volumes:
           - ./wordpress/www/html:/var/www/html
         ports:
           - "8000:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
           WORDPRESS_DB_NAME: wordpress
           
       phpmyadmin:
         image: phpmyadmin/phpmyadmin:latest
         restart: always
         depends_on:
           - db
         ports:
           - 8888:80
    
  4. docker-composeをビルドします。docker-compose.xmlに従ってMySQLとWordPressのインストールと設定が実行されます。

    sudo docker-compose up -d
    
  5. ブラウザで動作確認をする。
     ブラウザでlocalhost:8000へアクセスしてWordPressの画面が表示されることを確認します。
     WordPressの初期画面

  6. MySQLとWordPressのデータがあることを確認する。
     docker-compose.xmlのディレクトリを確認すると、db_dataディレクトリとwordpressディレクトリが作成されていることを確認します。これはそれぞれ、MySQLのデータとWordPressのデータになります。WordPressのテーマのカスタマイズなどはこのwordpressディレクトリ内のデータを編集すればOKです。

  7. これでWordpressの環境ができました。

docker-compose.ymlファイルの解説

インデントが大事

docker-compose.ymlのインデントはとても重要です。インデントが少しでもおかしいと、すぐにパースエラーになります。パースエラーがでたらインデントがそろっていないか確認してください。

ports

portsはローカルのポートとdockerコンテナのポートを紐づける設定になります。上記のdocker-compose.ymlでは

ports:
   - "8000:80"

となっていますが、これはローカルポートの8000ポートdockerコンテナの80ポートを紐づけることを示しています。

volumes

volumesはdockerコンテナのファイルをローカルにマウントする設定になります。dockerは通常メモリ上で動作するので、dockerを停止するとデータは削除されてしまいます。そこで、dockerコンテナのファイルをローカルにマウントすることで、dockerを停止してもデータが削除されないようにしています。これを永続化といいます。

例えば、先ほどのdocker-compose.ymlではdbのvolumesは以下のようになっていました。これは、dockerコンテナの/var/lib/mysqlをローカルの./db_dataにマウントすることを意味しています。

   db:
     image: mysql:5.7
     volumes:
       - ./db_data:/var/lib/mysql
  (省略)

Appendix

Wordpressをサブフォルダにインストールする方法

複数のサイトを構築する場合など、Wordpressをサブフォルダにインストールしたい場合があります。この場合は以下のdocker-compose.ymlを使います。

違いとしては、working_dir: /var/www/html/blogを追加しただけです。

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - ./db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - ./wordpress/www/html:/var/www/html
     working_dir: /var/www/html/blog
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
       
   phpmyadmin:
     image: phpmyadmin/phpmyadmin:latest
     restart: always
     depends_on:
       - db
     ports:
       - 8888:80

最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。

関連記事

SPONSORED LINK
SPONSORED LINK