Dockerコンテナ環境の構築が完了しましたので、
既存サーバーのデータをDockerコンテナへ移設します。
※ なお、初期インストール画面での設定は終えているものとして話を進めていきます。
1.移設元サーバーから移設データを取り出す
移設するデータは記事データである”MySQLのdumpファイル”、
画像などのメディアファイルやプラグインなどが格納されている”wp-contentディレクトリ”の2つ。
// WordPress配置ディレクトリに移動 (各々のサーバー環境に合わせて読みかえてください) # cd /var/www/html/wordpress // wp-contentフォルダをtarで固める # tar cvf wp-content.tar wp-content // SQLデータをエクスポート # mysqldump -u {ユーザー名} -p {パスワード} {データベース名} >> wordpress-export.sql
2.Dockerコンテナに反映させる
wp-contentディレクトリをDockerコンテナに配置する
※ Dockerコンテナ名:wordpress
// SCPでファイルを移動 # cd /tmp # scp {移設元サーバーIP}:/var/www/html/wordpress/wp-content.tar wp-content.tar // wordpressコンテナ内にwp-content.tarをコピー # docker cp wp-content.tar wordpress:/var/www/html // tarファイルを展開 # docker exec wordpress tar xvf wp-content.tar # docker exec wordpress /bin/bash -c "chown www-data:www-data -R /var/www/html/wp-content" // ディレクトリのパーミッションを変更 # docker exec wordpress /bin/bash -c "chmod 777 -R /var/www/html/wp-content/cache && chmod 777 -R /var/www/html/wp-content/uploads"
記事データをMySQLコンテナにインポートする。
※ Dockerコンテナ名:mysql
// SCPでファイルを移動 # cd /tmp # scp {移設元サーバーIP}:/var/www/html/wordpress/wordpress-export.sql wordpress-export.sql // mysqlコンテナ内にwordpress-export.sqlをコピー # docker cp wordpress-export.sql mysql:/tmp/ // インポート # docker exec mysql /bin/bash -c "mysql -h mysql -u {ユーザー名} -p {パスワード} {データベース名} < /tmp/wordpress-export.sql"
で、ブラウザでアクセスするときちんとデータが反映されていたので
これで、移設完了・・・・・と思っていたらブログの記事を書いているときに
画像をアップロードできない問題が発生しまして・・・・・
調べたところ今回の移設でwordpressの配置パスが変わったため
それに合わせて「メディア設定」>「アップロードするファイルの保存場所」のパス設定を
変更する必要がありましたのでメモしておきます。
これでWordpressデータの移設が完了しました。