他人が作ったWordPressファイルとSQLファイルを元にローカル環境で開発したい
DockerでWordPressローカル環境を作る
そして大容量のSQLファイルのインポートもしたいので手っ取り早いphpmyadminも一緒に入れる
ハマりポイントが結構あったので備忘録
docker-compose.yml等を用意
最低限のものを用意する
空のディレクトリに
- docker-comose.yml
- phpmyadminディレクトリ
- (↑の中に)phpmyadmin-misc.ini
を用意
├ docker-compose.yml
└ phpmyadmin
└ phpmyadmin-misc.ini
version: "3"
services:
db:
image: mysql:5.7
platform: linux/x86_64
container_name: "wp-test-db"
volumes:
- "db-data:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: pass
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
container_name: "wp-test"
volumes:
- "$PWD/wordpress:/var/www/html"
- "$PWD/.docker/backup:/tmp/backup"
- "$PWD/.docker/log:/tmp/log"
ports:
- "8003:80"
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: wp-test-phpmyadmin
depends_on:
- db
ports:
- 90:80
volumes:
- $PWD/phpmyadmin/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
volumes:
db-data:
networks:
wp-test_network:
ポート番号とかは適宜で。
phpmyadminで大容量のSQLファイルをインポートするためiniファイルも追加(デフォルトは2MBまでのファイルまで)
allow_url_fopen = Off
max_execution_time = 300
max_input_vars=10000
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M
コンテナを立ち上げWordPressサイトとphpmyadminにアクセス
$ docker-compose up -d
すると
.dockerディレクトリとwordpressディレクトリができています
全体のディレクトリ構造
├ .docker
└ backup
└ log
├ docker-compose.yml
└ phpmyadmin
└ phpmyadmin-misc.ini
└ wordpress
└ .htaccess
└ index.php
〜〜その他wordpressファイル
これで
http://localhost:8003/ で wordpressが起動
http://localhost:90/ で phpmyadminが起動
できるようになる
自作テーマを入れ,SQLファイルをインポート
先程のビルドでできたwordpressディレクトリ内のthemesディレクトリ内に自作テーマを入れる
WordPress管理画面からテーマを適用しておく
phpmyadminにアクセスする
(ユーザー名はroot, パスワードはpass)
データベースを新規作成する(例としてwp-test)
インポートメニューからSQLファイルを指定してインポート
インポート後は必要なテーブルは更新しておいてください
(wp-optionテーブルのsiteurlとhomeなど)
phpmyadminを使わずmysqlコンテナに入ってSQLファイルをインポートしてもいいですけどね
使用するDBを変更する
wordpressディレクトリ内のwp-configで設定する
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'exsername') );
/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'example password') );
これを変更する
/** The name of the database for WordPress */
define( 'DB_NAME', 'wp-test' );
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', 'pass' );
※もしテーブル接頭辞も変えていたら変更
$table_prefix = 'wp_';
これでSQLファイルをインポートしたwp-testテーブルを参照できるようになる
(wordpressの管理画面からパーマリンクも忘れずに設定する)
プラグインファイルとかも入れておく
http://localhost:8003/
にアクセスすると表示できているはず