0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WordPressのローカル環境をDockerで構築する!![M1Mac対応]

Posted at

最新版はこちらでご覧ください🙇‍♂️
https://blog.hpfull.jp/m1mac-wordpres-local/

この記事では自分のPCに使い捨てのWordPressのローカル開発環境をM1Macにも対応した形で作成する方法を解説していきます!

今回の大まかな手順です。

  1. Dockerをインストールする
  2. Dockerファイルを編集

また、自分で現在運用しているWordPressサイトと同じ見た目、データの環境をローカルでも扱いたい場合は、別の手順が必要になります。そちらについても追加で解説しています。

また、ソースコードをgithubで公開しています。

①Dockerをインストールする

まずはご自身のPCにDockerをインストールしていきましょう。すでにインストール済みの方はこの章は飛ばしてしまって構いません。

Docker公式サイト

上記からご自身のPCの環境に合ったものをインストールしましょう。

もし手順が分からない場合は、Macの方はこちらのサイト、Windowsの方はこちらのサイトを参照してください。

DockerをインストールしたらDockerを起動をしておきましょう。

Dockerがしっかりとインストールされており、起動している場合、

$ docker version

としてDockerのバージョンが返答されてきます。

②Dockerファイルを作成

次にwordpressディレクトリにdocker-componse.ymlというファイルを追加し、それを修正していきます。

以下をコピペしてください。

M1 Mac以外を利用している方

docker-compose.yml
version: '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
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

M1 Macを利用している方

docker-compose.yml
version: '3.3'

services:
  wordpress:
    image: wordpress:latest
    container_name: wp
    depends_on:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./:/var/www/html

  db:
    image: mariadb
    container_name: wp_mysql
    ports:
      - "4306:3306"
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

volumes:
    db_data:

M1とそれ以外の違いはデータベースのイメージをmysqlを利用しているか、mariadbを利用しているかです。

M1 Macではmysqlのイメージを利用するとエラーが発生し対処方法が少しややこしいのでmariadbで置き換えているという感じです。こちらのサイトでわかりやすく解説されています。

それでは準備が完了しました。

以下のコマンドを打って見てください!

$ docker-compose up -d

これを打つだけです!実際に、

にアクセスしてみてください。以下のような画面になっていると思います!!
ScreenShot-2022-04-23-23.13.14.jpg

ユーザー名などの情報を入力することでWordPressの管理画面へログインすることができます。ここからはローカルの環境なので、自由に扱ってしまって大丈夫です!

もしWordPressのテーマをいじりたいときは、

wp-content > themes > twentytwenty のように辿ってください。

例 twentytwentyテーマのヘッダーを修正する場合

まずは外観→テーマからtwentytwentyのテーマに変更しておいてください。

VScodeなどのエディタやvimなどを利用して以下のように修正してください。

上記のように新たに、

<meta name=”description” content=”テスト”>

という文言を追加してみてください。

ブラウザで検証ツールを利用すると、しっかりと即時反映されていることがわかります!

ScreenShot-2022-04-23-23.38.56-1-scaled.jpg

ローカル環境をやり直したいとき(削除するとき)

まず、以下のコマンドでコンテナを終了します。

$ docker-compose down

その後、また

$ docker-compose up -d

を行うことでもう一度環境をやり直すことができます!!

自分のWordPressサイトと同じ環境を作りたい方

今までは真っ新なWordPress環境を作る方法について述べてきましたが、自分でWordPressサイトを運用していて、それのコピーをローカルサイトに反映したいということもありますよね?

その場合にどうするかについてここから解説していきます!!

ディレクトリの準備

次にPCの適当な場所に今回環境構築をするためのディレクトリを作成しておきましょう。今回はmylocal-wordpressというディレクトリの中で作業していきます。

docker-compose.ymlを作成し、コマンドを打つところまでは一緒です。

docker-compose.ymlファイル

docker-compose.yml
version: "3.3"

services:
  wordpress:
    image: wordpress:latest
    container_name: wp
    depends_on:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wordpress:/var/www/html

  db:
    image: mariadb
    container_name: wp_mysql
    ports:
      - "4306:3306"
    volumes:
      - ./db_data:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

volumes:
  db_data:
$ mkdir mylocal-wordpress
$ cd mylocal-wordpress
$ touch docker-compose.yml
$ mkdir db_data
$ mkdir wordpress

そして、新たに「db_data」というフォルダを作成しましょう。現在のディレクトリの状況は以下のようになっているかと思います。

.mylocal-wordpress
├── db_data
├── wordpress
└── docker-compose.yml

自分のWordPressサイトのデータを持ってくる

次に「wp-content」、「wp-config.php」を自分のWordPressサイトのものに置き換えます。

やり方は利用しているレンタルサーバーにもよるのですが、mixhost場合、

「cPanel」にログイン後、「ファイルマネージャー」→「public_html」として、「wp-content」を右クリックします。
ScreenShot-2022-05-05-17.20.12.jpg

「Compress」を押し、「wp-content」をzipファイルとして圧縮します。zipファイルにしたのち、このzipファイルをダウンロードします。

また、「wp-config.php」もダウンロードしておきます。

自分のpcにダウンロードしたら先ほど作成していたディレクトリの「wordpress」へ置きます。

今のディレクトリ状況は以下のようになっているはずです。

.mylocal-wordpress
├── db_data
├── wordpress
│   ├── wp-content
│   └── wp-config.php
└── docker-compose.yml

次に、「db_data」の中身を自分のサイトのものに置き換えましょう。

ご自身が契約しているレンタルサーバーから「phpMyAdmin」へアクセスしましょう。mixhostの場合は「cPanel」からアクセスできます。
ScreenShot-2022-05-05-18.25.30.jpg

「実行」を押しエクスポートされたファイルを「db_data」へおきます。

現在のディレクトリ構造は以下のようになっているはずです。

.mylocal-wordpress
├── db_data
│    └── exportしてきたsqlファイル名.sql
├── wordpress
│   ├── wp-content
│   └── wp-config.php
└── docker-compose.yml

wp-config.phpを編集する

ダウンロードしてきた「wp-config.php」を少し編集します。
ScreenShot-2022-05-05-18.39.12.jpg

上記のように、

DB_NAME, DB_USER, DB_PASSWORD, DB_HOST

を編集してください。

この状態で一旦、

$ docker-compose up -d

をしましょう。

このように

へアクセスすると、自分のサイトと同じような見た目のWordPressサイトがローカル環境に建てられました!!
ScreenShot-2022-05-05-18.41.59.jpg

URLを書き換える

しかし、上記のサイトの状態だとリンクをクリックした際に本番環境の実際の自分のサイトにアクセスしてしまいます。

そこで、「Search-Replace-DB」というツールを利用してリンクをローカルのものに入れ替えます。

$ cd wordpress/
$ git clone https://github.com/interconnectit/Search-Replace-DB.git

とし、

docker-compose.ymlファイルに少し加筆します。

docker-compose.yml
version: "3.3"

services:
  wordpress:
    image: wordpress:latest
    container_name: wp
    depends_on:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wordpress:/var/www/html
      - ./wordpress/Search-Replace-DB:/var/www/html/Search-Replace-DB  ### ここを付け加える

  db:
    image: mariadb
    container_name: wp_mysql
    ports:
      - "4306:3306"
    volumes:
      - ./db_data:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

volumes:
  db_data:

この状態で、

$ docker-compose down
$ docker-compose up -d

をしたあと、

へアクセスします。

replace: 「https://blog.hpfull.jp」 with 「http://localhost:8000」
database name: 「wordpress」
username: 「wordpress」
pass: 「wordpress」
host: 「db」
port: 「3306」

とします。

「Test connection」をクリックすることで、データベースに接続できるかどうかが分か裏ます。

また、「Let’s go」の項目の、「Do a safe test run」をクリックすると、サイトのURLがどのように変更されるのかがわかります。

変更に問題がなければ、「Search and Replace」をクリックしましょう!

おまけ: ローカルでもphpMyAdminを利用したい場合

ローカルでもphpMyAdminを利用したいという場合も補足で解説しておきます。phpMyAdminをローカルで利用したい場合は、

docker-compose.yml
version: "3.3"

services:
  wordpress:
    image: wordpress:latest
    container_name: wp
    depends_on:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wordpress:/var/www/html
      - ./wordpress/Search-Replace-DB:/var/www/html/Search-Replace-DB

  db:
    image: mariadb
    container_name: wp_mysql
    ports:
      - "4306:3306"
    volumes:
      - ./db_data:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

### 以下を追加

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=db
      - PMA_USER=wordpress
      - PMA_PASSWORD=wordpress
    ports:
      - 3000:80
    volumes:
      - ./phpmyadmin/sessions:/sessions

volumes:
  db_data:

上記のように追記し、

へアクセスしてみてください!

これで完成です!!!!

自由にローカル環境のWordPressで遊びましょう!!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?