ローカル環境   ※当サイトのコンテンツには広告が含まれる場合があります。

DockerでWordPressのローカル環境を構築する方法【図解完全版】

yume-tada

docker-wordpress-environment

DockerでWordpressのローカル環境を作りたいが、

図解でわかりやすい資料が欲しい。

findout
お調べさん
yume-tada
yume-tada

そんなお悩みにピッタリの内容です。

本サイトのローカル環境を、Dockerで構築した時の手順を図解入りで詳しくまとめています。

本記事を読んでわかるコト

  • DockerでWordPressのローカル環境を構築する方法
  • Dockerの基本コマンド
  • 「docker-compose.yml」ファイルの書き方
  • 本番環境とローカル環境でデータを同期できる「wordmove」の使い方
  • 「wordmove」の基本コマンド

この記事を書いた人【ゆめただ】

この記事を書いた人
track?id=8172&type=classic&u=2875131b 69b6 4db5 840c be15b92760dc

1.ゆめただのローカル環境作成経緯

ゆめただは、順番にローカル環境を作成してきました。

現在は、高速で拡張性が高くコンパクトなDockerを使用しています。

ローカル環境作成経緯

  1. Local by flywheel : ローカル→本番への環境移行・完全な本番環境との同期が難しい
  2. VCCW+VirtualBox+wordmove:同期できるがVirtualBox仮想環境下で動作が遅く効率ダウン
  3. Docker+WordPress+wordmove:高速化を実現。今回説明する環境

\ローカル環境の構築方法3選を比較検討した記事はこちら/

ローカル環境比較記事はこちら
recommended WP local Env.
WordPressローカル環境おすすめ3選【ブログ始める初心者へ】

続きを見る

本記事の内容は、ゆめただが実行当時のバージョンで記載をしています。

最新のバージョンでは異なる部分があるかもしれません。自己責任でお願いします。

2.Dockerのメリット

最終的にたどりついたローカル環境の構築方法。

Dockerのメリットを3つまとめました。

機動性

・コンテナ型の開発環境が構築でき、とにかく軽い。

・VCCW+Virtualboxに比べて起動から動作含めて軽い。

・VirtualBoxは重くVCCWはすでにリリースが終了している古い技術で陳腐化。

汎用性

・Web開発環境としては、企業でも採用されている方法で情報が豊富。

拡張性

・今後のWebサイトローカル環境のアップデートも考えると容易に環境を構築できる。

・dockerhubに各種のimageが揃っているため、dockerコンテナを構築するときに

 必要なものとバージョンを指定するだけで環境が整う。

dockerの開発環境は、速く、軽く、拡張できるため理想的と言えます。

一度環境を作成してノウハウを理解しておいても損はありません。

3.今回構築するDockerローカル環境

Docker上でWordPress、wordmoveを動作させます。

  Windows上でのLinux環境は、WSL2(Windows Subsystem for Linux2)を用います。

  WSL2はMicrosoftがWindows10に付属の本格的なLinux仮想環境。

  本番環境とDockerローカル環境の同期イメージ図です。

word image 12281 1 2

4.Windows Terminalのインストール

Linuxの開発環境は、コマンドインタフェースが基本です。

Windows環境でコマンドラインを入力するために「Windows terminal」をインストールします。

↓インストールURL

https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701

(1)システム必要条件確認

「システム必要条件」クリックして、OSのバージョン等を確認しておきます。

バージョンが古い場合は、事前にアプデートします。

word image 12281 2 2

 Windowsのバージョンは、PCのアイコンを右クリックして「プロパティ」を選択して確認。      

word image 12281 3 2

(2)Windows Terminalの入手

「入手」をクリックして、Windows Terminalを入手してインストールします。

word image 12281 4 2

「開く」クリック。 「入手」をクリック。

word image 12281 5 2

 

インストール完了したら、「開く」をクリック。

インストール中                           インストール完了

word image 12281 6 2

起動すると、コマンド画面が出ます。

word image 12281 7 2

Windows Terminalは、いくつかのアプリと接続することが可能です。

∨をクリックすると「WindowsPowerShell」が選べます。

以降はこの「Windows Powershell」を使用します。

word image 12281 8 2

5.VS Codeのインストール

VS Codeは、Linuxの開発環境のファイルの編集を行うために必要です。

Windowsの環境からは直接Linuxの開発環境のファイルが閲覧できなくなりますが、

このVSCodeを使用すれば、Linux環境のファイル編集が可能になります。

インストールURL:

https://code.visualstudio.com/

word image 12281 9 2

ページに移動したら、「Download for Windows」をクリックします。

ダウンロードが完了すると、「ダウンロード」フォルダにインストーラーがダウンロードされます。

word image 12281 10 2

「VSCcode UserSetup-x64-1.xx.x.exe」これをダブルクリックして実行。

(xx.xの部分はその時のバージョンによって異なります) 

「同意する」をチェックして「次へ(N)>」をクリック。

word image 12281 11 2

全てにチェックを入れて、「次へ(N)>」をクリック。

word image 12281 12 2

「インストール」をクリック。

word image 12281 13 2

インストールが始まります。

word image 12281 14 2

インストールが完了。

「Visual Studio Codeを実行する」にチェックを入れて「完了」をクリック。

word image 12281 15 2

Visual Studio Codeが起動し、リリースノートが表示されます。

word image 12281 16 2

メニューから、拡張機能をインストールします。

word image 12281 17 2

「japanese」とキーインして日本語メニューをインストールしておく。

word image 12281 18 2

「Docker」とキーインしてdockerの環境もインストールしておきます。

word image 12281 19 2

6.WSL2のインストール

WSL2(Windows Subsystem for Linux2)をインストールします。

↓インストール手順【MicrosoftのURL】

https://docs.microsoft.com/ja-jp/windows/wsl/install

Windosのバージョンを確認します。

word image 12281 20 2

Windowsのコマンドより、「winver」とキーインして、確認。

※Windows 10 バージョン 2004 以降 (ビルド 19041 以降) または Windows 11 を実行している必要があります。

(最新情報はMicrosoftのページに従ってください)

word image 12281 21 2

WSL2をインストール

Powershellを管理者権限で起動して、「wsl --install」をキーインしインストールします。

word image 12281 22 2

インストール中。

word image 12281 23 2

インストール完了。一旦、Windowsを再起動します。

word image 12281 24 2

再起動すると、ubuntuのインストールが始まります。

word image 12281 25 2

インストールが完了したら、Linux使用時のユーザー名とパスワードの設定を行います。

word image 12281 26 2

パスワード設定は2回。

word image 12281 27 2

設定完了です。

word image 12281 28 2

Linuxカーネル更新プログラムパッケージ

Linuxカーネル更新プログラムパッケージをダウンロードしてインストールします。

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

ダウンロードしたファイルをダブルクリックしてインストールします。

word image 12281 29 2

Finishをクリックして完了です。

word image 12281 30 2

WSL2のデフォルト設定

PowerShellを管理者権限で起動します。

「wsl --set-default-version 2」をキーインして設定します。

word image 12281 31 2

 正常終了を確認します。

word image 12281 32 2

Windowsの機能の確認

Windowsのコマンド窓で、「windowsの機能」とキーインします。

Windowsの機能の有効化または無効化をクリック。

word image 12281 33 2

 仮想マシンプラットフォームに✔が入っていることを確認します。

word image 12281 34 2

Ubuntuに割り当てられているWSLを確認。「wsl --list –verbose」とキーインします。

word image 12281 35 2

【Ubuntuのアップデート】

  ●Update&Upgradeしておきます。

【Ubuntuの日本語化】

  ●使用可能なロケールを確認しておきます。

    C

    C.UTF-8

    POSIX

    en_US.utf8

  ●日本語ロケールがないので、インストールします。

  ●再度ロケールを確認する。日本語がインストールされていることを確認します。

    C

    C.UTF-8

    POSIX

    en_US.utf8

    ja_JP.utf8

  ●日本語ロケールを設定します。

  ●再起動で確認します。

  シェルを差起動して、dateコマンドで確認。日本語で日付表示されたらOK。

  ●タイムゾーンを変更します。

 カウントのパスワードを聞かれるので入力します。

画面表示されたら、「アジア→日本」の順番で設定します。

「アジア」が選択された状態で、ENTERキーを押し、次に都市が表示されるので

「東京」を選択された状態で、ENTERキーを押します。

設定時刻が表示されます。

  Current default time zone: 'Asia/Tokyo'

  Local time is now: Sun Jan 30 10:37:17 JST 2022.

  Universal Time is now: Sun Jan 30 01:37:17 UTC 2022.

dateコマンドで再度確認します。

word image 12281 36 2
word image 12281 37 2

【コマンドの日本語化を行う】

インストールが完了したら、確認します。

man sudoの結果

SUDO(8) System Manager's Manual SUDO(8)

名前

  sudo, sudoedit - コマンドを他のユーザとして実行する

書式

  sudo -h | -K | -k | -V

  sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]

  sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]

  sudo [-AbEHnPS] [-C num] [-g group] [-h host] [-p prompt] [-r role] [-t type] [-u user] [VAR=value]

   [-i | -s] [command]

  sudoedit [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file …

説明

  sudo を使用すると、許可されたユーザが、セキュリティポリシーの設定の範囲内で、 スーパーユーザや他のユーザに

  変身して、command を実行することが可能になる。 セキュリティポリシーへの問い合わせは、ユーザ名によって行われるが、 そのユーザ名を決めるのは、sudo を実行するユーザの実ユーザ ID であって、 実効ユーザ ID ではない。

7.Dockerのインストール

今回のメインであるDockerをインストールします。

↓インストールURL:

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

インストールページにアクセスしたら、「Get Docker Desktop」をクリックします。

word image 12281 38 2

ダウンロードしたインストーラーをクリックしインストールします。

word image 12281 39 2

インストールが始まる。全部✔されていることを確認して、OKをクリックします。

word image 12281 41 2
word image 12281 40 2

インストール中。

word image 12281 42 2

インストール完了。「Close and logout」をクリックします。

word image 12281 43 2

Windowsからログアウトするので、再度ログインします。

Dockerの画面が出るので、「I accept the terms」を✔して、「Accept」をクリックします。

word image 12281 44 2

Dockerが立ち上がる。チュートリアルを見る場合は、Startをクリックします。

スキップする場合は、Skip tutorialをクリック。

word image 12281 45 2

Dockerの画面が立ち上がれば、インストール成功です。

word image 12281 46 2

8.gitのインストール

プログラムのバージョン管理のためにgitをインストールします。

↓インストールURL:

https://gitforwindows.org/

インストールページにアクセスしたら、「Download」をクリックします。

word image 12281 47 2

ダウンロードしたインストーラーをダブルクリックして起動します。

word image 12281 48 2

インストール画面が起動たら、Nextをクリックします。

word image 12281 49 2

インストールディレクトリ指定画面が出たら、Nextをクリックします。

word image 12281 50 2

Nextをクリック。

word image 12281 51 2

Nextをクリック。

word image 12281 52 2

ここで、使用するエディタを選択します。

先にインストール済みの、VSCodeを指定します。

「Use Visual Studio Code as Git’s default editor」を選択しNextクリックします。

word image 12281 53 2

DefaultのままNextをクリックします。

word image 12281 54 2

DefaultのままでNextをクリックします。

word image 12281 55 2

DefaultのままでNextをクリックします。

word image 12281 56 2

DefaultのままでNextをクリックします。

word image 12281 57 2

DefaultのままでNextをクリックします。

word image 12281 58 2

DefaultのままでNextをクリックします。

word image 12281 59 2

DefaultのままでNextをクリックします。

word image 12281 60 2

DefaultのままでNextをクリックします。

word image 12281 61 2

全て☑してNextをクリックします。

word image 12281 62 2

DefaultのままでInstallをクリックします。

word image 12281 63 2

インストール中。

word image 12281 64 2

Finishで終了です。

word image 12281 65 2

Windowsメニューに、Gitが追加されていればOKです。

word image 12281 66 2

9.Gitを使ってWordPress・wordmoveの環境をコピー

Githubより、WordPress・wordmiveの環境をコピーします。

適用できるgitは下記の3つ。今回は(2)を採用しました。

(1)Docker-composeで最強(自分史上)のWordPress開発環境を作る

(2)僕のWordPress×dockerのローカル開発環境の使い方を丁寧に紹介します

  後ほど、SSL証明書を発行してローカル開発環境にもhttpsでアクセスする環境を作ります。

  Qiitaの記事を参考に進めます。

(3)HTTPSに対応したWordPressのローカル開発環境をDockerで構築

girhubから環境リポジトリをクローン

ubuntuを立ち上げて、コマンドウインドウでコマンドを実行。

Githubにある上記(2)の環境をコピーしてきます。

syntax$ git clone https://github.com/target.git project-dir

実行すると、各種フォルダがコピーされてきます。

word image 12281 67 2

↓「クローン元のgithub((2)僕のWordPress×dockerのローカル開発環境の使い方を丁寧に紹介します)」https://github.com/blanket11/wockerpress

word image 12281 68 2

【.envファイル編集】

コピーしてきた環境で、.env-exampleファイルをもとに、.envファイルを作成します。

.envファイルを編集します。

.envファイル

# ==================================================
# Local Settings
# ex: wp-project-name
# プロダクトの名前 作成されるcontainer名の接頭語として使用
PROJECT_NAME=wp-Internal-URL
# ex: https://localhost
LOCAL_URL=https://Internal-URL
# local WordPressを紐付けるPort名(ex: 8080)
LOCAL_SERVER_PORT=8080
# localのmysqlを紐付けるPort名(ex: 3306)
# ex: 3306
LOCAL_DB_PORT=3306
# The root directory of wordpress. Example: "/wordpress/" for subdirectories
WP_WORKING_DIR=/
# ==================================================
# wordmoveコンテナの設定
# --------------------------------------------------
# production server
# 全て本番環境の情報
# URL
PRODUCTION_URL=本番環境のURL
# WordPressのディレクトリの絶対パス
PRODUCTION_DIR_PATH=本番環境のURLパス
# DB Name
PRODUCTION_DB_NAME=本番環境のデータべース名
# DB user name
PRODUCTION_DB_USER=本番環境のデータべースユーザー名
# DB password
PRODUCTION_DB_PASSWORD=(データベースパスワード)
# Host name of the DB
PRODUCTION_DB_HOST=本番環境のデータベースホスト名
# DB connection port
PRODUCTION_DB_PORT=
# SSH hostname
PRODUCTION_SSH_HOST=本番環境のSSHホスト名
# SSH user name
PRODUCTION_SSH_USER=本番環境のSSHユーザー名
# SSH port name
PRODUCTION_SSH_PORT=本番環境のSSHポート番号

【docker-compose.yml】

docker-compose.ymlファイルを編集します。

docker-compose.ymlファイル

version: "3"
services:
database:
platform: linux/x86_64
# image: mysql:5.7
image: mariadb:latest
command:
- "--character-set-server=utf8"
- "--collation-server=utf8_unicode_ci"
ports:
- "${LOCAL_DB_PORT}:3306"
restart: on-failure:5
volumes:
- ./db/data:/var/lib/mysql/
- ./db/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.conf
container_name: "${PROJECT_NAME}_db"
environment:
MYSQL_USER: username
MYSQL_DATABASE: databasename
MYSQL_PASSWORD:(ローカルデータべースパスワード)
MYSQL_ROOT_PASSWORD: (ローカルデータベースルートパスワード)
wordpress:
depends_on:
- database
image: wordpress:latest
container_name: "${PROJECT_NAME}_wordpress"
ports:
- "80:80"
- "443:443"
restart: on-failure:5
volumes:
- ./public:/var/www/html
- ./certs:/etc/ssl/private
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
working_dir: "/var/www/html${WP_WORKING_DIR}"
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: ワードプレスDBユーザー名
WORDPRESS_DB_PASSWORD: ワードプレスDBパスワード
WORDPRESS_DB_NAME: ワードプレスDB名
#command:
#- bash -c "chown -R www-data:www-data /var/www/html/ && apache2-foreground"
phpmyadmin:
depends_on:
- database
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
restart: on-failure:5
environment:
PMA_HOST: database
wordmove:
tty: true
depends_on:
- wordpress
image: welaika/wordmove
restart: on-failure:5
container_name: "${PROJECT_NAME}_wordmove"
volumes:
- ./config:/home/
- ./public:/var/www/html
- ~/.ssh:/home/.ssh
environment:
LOCAL_URL: "${LOCAL_URL}"
WP_WORKING_DIR: "${WP_WORKING_DIR}"
PRODUCTION_URL: "${PRODUCTION_URL}"
PRODUCTION_DIR_PATH: "${PRODUCTION_DIR_PATH}"
PRODUCTION_DB_NAME: "${PRODUCTION_DB_NAME}"
PRODUCTION_DB_USER: "${PRODUCTION_DB_USER}"
PRODUCTION_DB_PASSWORD: "${PRODUCTION_DB_PASSWORD}"
PRODUCTION_DB_HOST: "${PRODUCTION_DB_HOST}"
PRODUCTION_DB_PORT: "${PRODUCTION_DB_PORT}"
PRODUCTION_SSH_HOST: "${PRODUCTION_SSH_HOST}"
PRODUCTION_SSH_USER: "${PRODUCTION_SSH_USER}"
PRODUCTION_SSH_PORT: "${PRODUCTION_SSH_PORT}"
RUBYOPT: -EUTF-8
#command:
#- bash -c "chown -R www-data:www-data /var/www/html/ && apache2-foreground"
mailhog:
container_name: "${PROJECT_NAME}_mailhog"
image: mailhog/mailhog
ports:
- "8025:8025"
- "1025:1025"

10.dockerの起動

dockerを起動します。 -dはバックグランド実行。

動き始めます。

word image 12281 69 2

1分ぐらいで完了します。

word image 12281 70 2

【覚えておいた方がいいdockerコマンド】

$ docker-comopse up -d 起動
$ docker-compose stop  コンテナ達を停止させる。
$ docker-compose start  コンテナ達をスタートする。
$ docker-compose restart コンテナ達をリスタートさせる。
$ docker-compose down コンテナのデータ等破棄。docker-compose.yml修正時実施する。
$ docker-compose down --rmi all --volumes --remove-orphans 滅びの呪文。Volumeも全て破棄。
$ docker system prune -a -f –volumes # 使わないボリュームなんかを全てキレイに掃除する
$ docker-compose up -d --no-recreate --build #コンテナ作り直し(コンテナがあれば再作成しない)
 → これゴミがあれば作らないので、お掃除確認になる。
$ docker-compose up -d ---force-recreate --build
$ docker image ls イメージリストを表示する
$ docker ps -a 実行中のコンテナを確認する(-aで停止中のコンテナも表示)
$ docker rmi  [image名] イメージを完全に削除する
$ docker rm [コンテナ名] コンテナを完全に削除する

11.SSL証明書を発行・HTTPS接続設定

(1)フォルダのファイルの準備

word image 12281 71 2   ローカルフォルダーに、各種フォルダとファイルを作成します。

(2)docker-composeのコンテナを停止しておきます。

word image 12281 72 2

(3)docker-compose.yml編集

PHPに関するマウントの記述を追記します。

docker-compose.yml追記

wordpress:
depends_on:
- database
image: wordpress:latest
container_name: "${PROJECT_NAME}_wordpress"
ports:
- "80:80"
- "443:443"
restart: on-failure:5
volumes:
- ./public:/var/www/html
- ./certs:/etc/ssl/private
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini

brewを使えるようにインストールします。

↓参考URL:

https://brew.sh/index_ja

インストールコマンドを実行

pathを通します。

brewの動作確認。

word image 12281 73 2

 mkcertをインストールします。

word image 12281 74 2

「The local CA is now installed in the system trust store!」が出力されれば成功です。

証明書発行

Mksertを用いて証明書を発行する。作業ディレクトリのcertsへ移動して実行します。

word image 12281 75 2

これで、証明書発行完了!

スクリプトを実行して、コンテナに反映します。

プロジェクトのカレントフォルダに移動して実行。

ちなみに、ゆめただは、.env内の変数を読み込ませるために、ssl.shを修正ました。

【./script/ssl.shファイル】

./script/ssl.shファイル

#7行目を修正。
#. .env
export $(cat .env | grep -v ^#)

この証明書を、wordpressのコンテナに適用します。

docker-composeで立ち上げ。

コンテナの確認。

word image 12281 76 2

確認したwordpressのコンテナ名で実行します。

これでコンテナの中に入れます。

mkcertで発行した証明書が正しくマウントされているかを確認します。

word image 12281 77 2

この2つのファイルがあればOK。

SSL設定ファイルを編集する。Linux上のファイルを直接編集します。

viエディタで編集する場合を説明する。エディタは何でもOKです。

コンテナに、viエディタをインストールする。viエディタの使い方はここでは省略します。

sslの定義ファイルを編集して証明書を指定します。

定義ファイルが複数ある場合は、localhostの指定ポートが書かれている方を編集します。

#2行目を修正(80ポートに対応するように変更)

# 32, 33行目を生成した証明書のファイル名に変更

※メモ:コンテナ起動時にエラーが発生している場合、exec -itで起動できない場合がある。

    これを調査する方法は次の通り。

   これで、コンテナの起動時にエラーがある場合はわかる。 

編集後ファイルを保存して、「a2ensite default-ssl」「a2enmod ssl」を実行します。

word image 12281 78 2
word image 12281 79 2

Apache2をリスタートします。 「$ sudo service apache2 restart」

exitコマンドで抜けるので「docker-compose restart」でdockerを再起動します。

12.Wordpressへのアクセス

Webブラウザで、WordPressの初期ページにアクセスしてみます。

https://localhost:443

成功すると、WordPressの初期ページが表示されます。

ウイルスソフトが証明書を無効と判断して、初期ページが表示されない場合は、

強制的に表示すればOKです。

【Webページ アクセスまとめ】

http://localhost:80(SSLなし)

https://localhost:443(SSLあり)

https://localhost:8080 (phpMyAdmin)

https://localhost/wp-login.php(loginページ)

word image 12281 80 2

13.ubuntu環境の確認

dockerのコンテナに入り、各種環境のバージョンを確認しておきます。

コンテナに入り各種バージョンを確認します。

【OS】

 WSL2の環境も確認しておく。

【php】

>

【apache2】

【DB】

Sqlのバージョンは、DBのコンテナに入って確認する。

【wordmove】

14.SSH公開鍵の設定

Wordmoveではssh接続するため、公開鍵と秘密鍵を用意して、秘密鍵を入れた~/.sshディレクトリをコンテナの/home/.sshにマウントします。

id_rsa:秘密鍵 ➡ サーバー側

id_rsa.pub:公開鍵 ➡ ローカル側

【公開鍵・秘密鍵の用意と設定方法】

wordmoveのdockerのコンテナに入り、公開鍵の生成・設定を行います。

【概要】

【鍵の作り方】(すでに鍵がある人はスキップ)

保存場所ファイルを指定(例 :/home/.ssh/id_rsa)

パスワードを入力

/home/.sshにid_rsa、id_rsa.pubファイルが生成される。

【ssh-agentを起動】

【ssh-agentを登録】

【登録された鍵のリストを確認】

【詳細:公開鍵・秘密鍵の用意と設定方法】

ウインドウで、「ssh-keygen」と入力します。

word image 12281 81 2

「Enter file in which to save the key」と表示されるのでそのままEnterキーを押します。

word image 12281 82 2

Enter passphase(empty for no passphase):と表示されるので

パスワードを入力する。2回求められるので2回同じパスワードを入力します。

word image 12281 83 2

2回とも同じパスワードを入力すると「id_rsa」、「id_rsa.pub」というファイルが生成されたメッセージが出ます。

word image 12281 84 2

「.ssh」フォルダ内を見ると「id_rsa」、「id_rsa.pub」と二つのファイルが生成されています。

公開鍵である「id_rsa.pub」の方をエディタで開き、内容をコピーしてサーバーに登録します。

word image 12281 85 2

サーバーに公開鍵を登録する前に、秘密鍵(id_rsa)の方のパーミッションを下記のように変更しておきます。

→chmod 600 /・・・/ユーザ名/.ssh/id_rsa

パーミッションが変更されたか、「ls-ltr /home/ユーザー名/.ssh/」と入力します。

id_rsaのパーミッションが、「-rw-------」になっていればOKです。

word image 12281 86 2

念のため、.sshフォルダのパーミッションも確認しておきます。

word image 12281 87 2

パーミッションの変更をしないでSSH接続をした場合、

「Permission denied (publickey,gssapi-with-mic).」とエラーが発生する場合があります。

【サーバーに公開鍵を設定する】

秘密鍵の方のパーミッションを変更した後、サーバーに公開鍵を登録します。

今回は「エックスサーバー」を例に行います。サーバーパネルから「SSH設定」に行きます。

word image 12281 88 2

状態を「ON」に設定します。

word image 12281 89 2

設定完了の画面がでる。戻るボタンを押します。

word image 12281 90 2

「ON」になっていることを確認します。

word image 12281 91 2

次に「公開鍵登録・設定」に行き、下記の操作を行います。

(1)「公開鍵登録・設定」を選択。

(2)「公開鍵」に「id_rsa.pub」の内容を張り付けます。

(3)「確認画面へ進む」をクリックします。

word image 12281 92 2

(3)内容を確認して「登録する」をクリックします。

15.Wordmoveの確認

Wordmoveは、コマンド1つでカンタンにデータベースやプラグイン等を本番とローカル環境間で同期できる非常に便利なコマンドです。

Dockerのコンテナに入ります(wordmoveコンテナ)

./configに移動。movefile.ymlファイルがあります。これがwordmoveの設定ファイルです。

基本は、.envファイルに変数を指定しているので、movefile.ymlは編集の必要はありません。

【試行】

wordmoveは、環境をまるっとコピーできるコマンドのため、間違いが許されません。

push : ローカル ➡ 本番

pull  : 本番 ➡ ローカル

この方向を間違うと、取り返しのつかない事態になりますの注意が必要です。

ゆめただも、過去にコピーの方向を間違える失敗をしています。

間違ってwordmoveしてしまった場合の復旧方法は、こちらの記事を参考にしてください。

\wordmoveで誤ってデプロイしてしまったときの復旧方法はこちら/

wordmove復旧方法はこちら
recovery-method-of-wordmove-wrong-deployed
wordmoveで誤ってデータベースをデプロイした場合の復元方法

続きを見る

実際にコマンドを実行する前に、試行して動作を確認することをおすすめします。

-sオプションをつけることにより、接続以外はファイルの送受を行わず試行ができます。

コマンドの例です。

[テストモードで 本番環境 → ローカルへ(テストモードで、実際に実行されない)]

本番からローカルに持ってきてみる。

※(本番からローカルへ環境を移行するときのノウハウ)

Allで一度にやらずに、1つ1つpullで持ってくる。

--all # ファイル全部
-w # `/wp-content/`ディレクトリ(除外したファイル以外)のみ
-u # `/wp-content/upload/`ディレクトリのみ
-t # `/wp-content/theme/`のみ
-p # `/wp-content/plugins/`のみ
-l # `/wp-content/language/`のみ
-d # データベースファイルのみ
-v # verbose
-s # dry runモードで実行、実際にはファイル転送されない
-e # 環境(push先・push元)を指定
-c # `wp-config.php`のみ
-h # wordmoveの使い方

16.各種調整・確認

(1).htaccess

.htaccessファイルは、デフォルトから適宜本番環境と照らし合わせて修正をします。

(2)ファイルアクセス権限

ゆめただは、wordmoveで本番環境からdockerのローカル環境へ全てpullすることができました。

ローカル環境で、WordPressの管理画面にアクセスしたところ、下記の問題が発生していることが解りましたので、対処を行っています。

Wp-dbmanager。DBのバックアップ用に使用しているプラグインです。

WordPressの管理画面にエラーが表示されました。

word image 12281 93 2

wp-content配下に、アクセス権がないので書き込みができないとのこと。

直接、wp-content/backup-dbフォルダを作成。表示通りに、.htaccessファイル、index.phpファイルをコピー。また、ファイルやフォルダのアクセス権でrootになっている場合は、正しい所有権に変更します。

コマンド例:

ゆめただは、wp-content/backup-dbフォルダを作り、

Wp-content/plugins/wp-dbmanager/htaccess.txtをwp-content/backup-db/.htaccessファイルとしてコーピー。

Wp-content/plugins/wp-dbmanager/index.phpをwp-content/backup-db/へコピー。

で解決しました。

参考記事:https://tabatayuki.net/wordpress/10684/

17.LinuxとWindows間のファイルのやりとり

WSL2(Linux)でWindowのフォルダは、それぞれアクセス先を指定して閲覧できます。

C:\ドライブ ➡ /mnt/c

D:\ドライブ ➡ /mnt/d

word image 12281 94 2

Windowsから、WSL2(Linux)のフォルダ

Ubuntuのウインドウで、「explorer.exe .」を実行すると、起動したディレクト位置で

Windows explorerが起動します。これ便利です。

word image 12281 95 2

Ubuntuのファイルがexplorerで閲覧できます。

word image 12281 96 2
yume-tada
yume-tada

以上で終了です!

これであなたもdockerの環境を手に入れることができます。

-ローカル環境