0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wordpressのローカル環境をDockerでつくる

Posted at

目的

既存のWordpressサイトの開発環境を作りたくて、作成。
その備忘録

まずはインストールしたいWordpressのバージョンを確認

すでに実行中のWordpressがあるのなら、
Wordpressの管理画面
→ツール
→サイトヘルス
→「情報」タブ

  • Wordpress : wordpressのバージョン、
  • サーバー : PHPのバージョン
  • データベース : MySQLのバージョン

上記の3つを確認する。

Plugin「All-in-One WP Migration」を使うときは、既存のPHPのバージョンが違うとインポートが完了しないので、特にPHPのバージョンには注意。

docker-compose.ymlを作る。

参考:
https://coosy.co.jp/blog/docker-environment/
https://github.com/chum9625/docker-compose-wp-master/blob/main/README.md
https://weblabo.oscasierra.net/wordpress-docker-compose/
https://blowup-bbs.com/wordpress-docker-development-environment/

私が採用したdocker-compose.ymlは以下のもの

docker-compose.yml
services:
  wordpress:
    container_name: my-wp-container
    depends_on:
      - db
    image: wordpress:php7.4-apache #今回はphp7.4で指定。
    volumes:
      - ./html:/var/www/html #wordpressファイル群格納用
      - ./wp-content:/var/www/html/wp-content #テーマ、プラグイン開発用
      - ./**my-theme**:/var/www/html/wp-content/themes/**my-theme**  #オリジナルテーマ開発用空テーマ**my-theme**部分は適宜変更。
    ports:
      - "8080:80" #ポート番号が被らないように
    restart: unless-stopped
    environment:
      WORDPRESS_DB_HOST: db:3306 #defaultのポート
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: root-pass
      WORDPRESS_DB_NAME: wordpress

  db:
    image: mysql:5.7
    ports:
      - "3307:3306" # 外部から 3307 ポートでアクセス(3306をほかのポートで使っているとき)
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root-pass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: db-user
      MYSQL_PASSWORD: db-pass

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: db
    restart: unless-stopped
    ports:
      - "8000:80" #ポート番号が被らないように
    
volumes:
  db_data: {}

docker-compose.ymlはポート番号に注意して作成。
WORDPRESS_DB_HOST: db:3306は、Docker内のポートなので変更しなくてOK。

私はこれで間違えて時間がかかった。

注意

アクセスポートを変えたい場合は、

db:
   ports:
     - "3307:3306" # 外部から 3307 ポートでアクセス(3306をほかのポートで使っているとき)

こちらを編集する。

管理画面に入る

wordpress-docker-compose-2-1536x710.png

http://localhost:8080 にアクセスすると、
いつもの管理画面の設定がでてくるので初期設定する。

Wordpressの引っ越し

1.既存のWordpressサイトからAll-in-One WP Migrationを使って、ファイルをエキスポートする

2.All-in-One WP Migration の容量を添付のリンク参照にあげる。
このとき、

   volumes:
      - ./html:/var/www/html #wordpressファイル群格納用
      - ./wp-content:/var/www/html/wp-content #テーマ、プラグイン開発用
      - ./**my-theme**:/var/www/html/wp-content/themes/**my-theme**  #オリジナルテーマ開発用空テーマ**my-theme**部分は適宜変更。

で、ローカルにマウントしているので、ローカルの./wp-contentのなかの
plugins-all-in-one-wp-migration-constants.phpを編集したら、
Docker内のファイルも編集される。

image.png

容量あげたら、インポートして終了。
PHPのバージョンがちがうと、インポートできずに止まるので、注意。

注意
PHPのバージョンに注意してください。

アップロードサイズをあげる方法はいろいろあるみたい。
https://www.vektor-inc.co.jp/post/upload_max_filesize/

ルーティングの編集

このままだと、トップページは表示されるけど、下層ページは表示されないので、
管理画面>設定>パーマリンクで何もしないで更新を押す。
すると、.htaccessが更新されて、ルーティングを自動で設定してくれるので、下層ページも設定される。

ローカルにお引越し完了!

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?