他人からもらったWordPressファイルとSQLファイルを元にローカル環境で開発したい (Dockerで環境構築)

他人が作ったWordPressファイルとSQLファイルを元にローカル環境で開発したい

DockerでWordPressローカル環境を作る
そして大容量のSQLファイルのインポートもしたいので手っ取り早いphpmyadminも一緒に入れる
ハマりポイントが結構あったので備忘録

## docker-compose.yml等を用意
最低限のものを用意する
空のディレクトリに
* docker-comose.yml
* phpmyadminディレクトリ
* (↑の中に)phpmyadmin-misc.ini
を用意


```
├ docker-compose.yml
└ phpmyadmin
  └ phpmyadmin-misc.ini
```


```yml:docker-compose.yml
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までのファイルまで）
```ini:phpmyadmin-misc.ini
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ディレクトリができています

全体のディレクトリ構造
```
├ .dockeｒ
  └ 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)

![スクリーンショット 2022-03-25 17.38.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869250/85ed746f-19a3-4d90-a6a2-89bb6071ede0.png)

インポートメニューからSQLファイルを指定してインポート

インポート後は必要なテーブルは更新しておいてください
(wp-optionテーブルのsiteurlとhomeなど)

##### phpmyadminを使わずmysqlコンテナに入ってSQLファイルをインポートしてもいいですけどね


#### 使用するDBを変更する
wordpressディレクトリ内のwp-configで設定する

```php:wp-config.php
/** 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') );
```
これを変更する
```php:wp-config.php
/** 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/
にアクセスすると表示できているはず