レンタルサーバーからVPS(Docker)に移行しようと考え、その準備として実験しました。
ローカール環境でDockerで動かしているWordPressで発生した問題点と解決策です。
以下の環境で実行しています。
また、お名前ドットコムのレンタルサーバーで運用している当ブログを
ローカール環境に移行してみました。
(テーマとプラグインは移行せず、移行先で個別に入れました。)
その方法をご紹介します。
WordPressの注意点
アップロードサイズ設定が小さいのでエラーが起きました。
メディアのAdd new Media fileで「最大アップロードサイズ: 2 MB。」が確認できます。
デフォルトのアップロードサイズが2Mで小さいため
NginxとWordPressのphpの設定変更が必要です。
この2つコンテナが消えると、設定も戻ってしまいます。
大きいサイズをアップロードするときは、テーマのアップロードとかなので
都度、実行してもいいかもしれません。
私の、このレンタルサーバーで運用しているブログは32MBなので、
32MBに設定することにしました。
具体的に見ていきます。
テーマCocoonを入れようとしたら413 Request Entity Too Large
Nginxのclient_max_body_sizeの設定で直ります。
https-portalコンテナ(私の場合のコンテナ)が動いている状態で
DockerDesktopでhttps-portalをクリックし・・・設定でviews files→
/etc/nginx/conf.d/site-a1.com.confを右クリックでEdit file
/etc/nginx/conf.d/site-a1.com.ssl.confも同じ変更が必要です。
(site-a1.comは私の場合です。)
client_max_body_size 32m;で容量を増やします(cocoon-master.zipは15Mあるので32mにした)
server {
listen 80;
server_name site-a1.com;
client_max_body_size 32m;
location / {
return 301 https://$server_name$request_uri;
}
location /.well-known/acme-challenge/ {
allow all;
alias /var/www/default/challenges/;
try_files $uri =404;
}
}
変更したら右の方にあるsaveボタンをクリック
更新
docker exec https-portal-https-portal-1 nginx -s reload
目次へ
「辿ったリンクは期限が切れています。 もう一度お試しください。」
再度テーマCocoonを入れようとしたら
今度は「辿ったリンクは期限が切れています。 もう一度お試しください。」のエラーが出ました。
WordPressのphpの設定で直ります。
参考:Dockerで動かしているWordPressのアップロード上限を変更する
wordpress1/php.iniを作って内容は以下。(wordpress1は私の場合)
upload_max_filesize = 32M
post_max_size = 32M
docker cp ./php.ini wordpress1-wordpress-1:/usr/local/etc/php/php.ini
*wordpress1-wordpress-1は<container_name>でdocker ps -aで調べられます。
docker restart コンテナ名
目次へ
移行してみた
お名前ドットコムのレンタルサーバーで運用している当ブログを
ローカール環境に移行してみます。
テーマとプラグインは移行には含めず、先に個別にインストールしました。
プラグインUpdraftPlus で移行します。
バックアップに関してはこちらを参考にしてください。↓↓
(無料のレンタルサーバーに移行作業を行っています。)
ファイルが用意できたらUpdraftPlus で
「バックアップファイルをアップロード」をクリック→*-uploads、*-others、*-dbを選択
→復元→アップロード、その他、データベースにチェック
Search and replace site location in the database (migrate)にチェック→次へ
私は、ログインIDをパスワードを変更したくなかったので以下を行いました。
(ログインID、パスワードも移行したい方は、そのままでいいです。)
「すべてのデータベーステーブルを復元したくない場合は、ここで除外するテーブルを選択してください(…)」をクリック
wp_usersとwp_usermetaのチェックを外す。(除外するほうのチェックを外す)
- wp_users 登録ユーザ一覧情報
- wp_usermeta 登録ユーザの権限情報などの詳細情報
最初wp_usersとwp_usermetaだけチェックしてやったら、ログインID、パスワードだけ変わってしまった。🤣 (UpdraftPlus の翻訳が分かりにくくて、誤解してしまう。)
参考:UpdraftPlus Backup の復元の罠にご注意
復元をクリックすると
警告:が出ていた
シンクラウド for Freeを復元元としたとき
The site in this backup was running on a webserver with version 8.1 of PHP. これは、復元先のサーバー (バージョン8.0.30) よりかなり新しいものです。 現在のサーバーを更新できず、お使いのプラグイン/テーマなどが古い PHP のバージョンと互換性があると確信している (またはリスクを負う覚悟がある) 場合にのみ、作業を進めてください。
お名前.comレンタルサーバーを復元元としたとき
The site in this backup was running on a webserver with version 7.4 of PHP. これは、復元先のサーバー (バージョン8.0.30) より古いものです。 お使いのプラグインやテーマなどが新しいバージョンの PHP と互換性があることを確認し、問題がないことに自信を持っている (またはリスクを冒す覚悟がある) 場合にのみ、作業を進めてください。
WordPressのツール→サイトヘルス→情報タブ→サーバーで確認すると
復元元(シンクラウド for Free)-PHP バージョン 8.1.22 (64ビット値をサポートしています)
復元先(Docker)-PHP バージョン8.0.30 (64ビット値をサポートしています)
ymlでimage: wordpress:latestにしたのになぜ古いのかは不明。
私の場合、結果的にどちらも気にせず、そのままでPHPのバージョンは影響なかったです。
(プラグインとか人によって状況は違うと思いますので注意です。)
初めてだと出ないが2回目だと出る。
エラー: Existing unremoved folders from a previous restore exist (please use the “Delete old folders” button to delete them before trying again): /var/www/html/wp-content/updraft/uploads-old
Delete old foldersをクリック→設定に戻って、もう一度「復元」からやりなおすとできる。
目次へ
まとめ
お名前ドットコムのレンタルサーバーから
ローカール環境のDockerで動かしているWordPressへ移行できた。
問題になったところはNginxとWordPressのphpのアップロードサイズを制限しているところ。
ここは、エラー現象として見えにくく、いろんな形で表れてくる。
ただ設定を変えれば、うまくいった。
Dockerを使わないのであれば、こっちで移行の練習をしたほうが楽です。
イチゲをOFUSEで応援する(御質問でもOKです)Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)
目次へ
コメント