サイトアイコン アラコキからの Raspberry Pi 電子工作

「Duplicator」で サイズの大きいサイト(500MB超)を移行

WordPress Twenty Seventeen
Webサーバーのアップグレード
WordPressを Duplicatorで引っ越し
 
Webサーバーを、Raspberry Pi 3Bから 4Bにアップグレードするに当って、WordPressの引っ越しが発生。「All-in-One WP Migration」を使った引越は上手くゆかず、「Duplicator」を使って引っ越すと、問題なくすんなりと移行できた。
 
 
以下、WordPressを Duplicatorで引っ越した記録。
 

 

スポンサー リンク

 

 
 
 
 
 
1. 移行環境
 
 
1-1. サーバー環境
 
Webサーバーを、Raspberry Pi 4 4GBにアップグレードするために、Raspbianを  Stretch から Buster に変更した。
 
WordPressの移行環境。
 
サーバーソフトは最新バージョンで、大きな変化はない。
 
 
 
1-2. 「Duplicator」採用理由
 
以前の引越で上手くいった、「All-in-One WP Migration」を使用して移行を試みるも、「インポートが100%で止まる」。
 
古いバージョンに戻したり、エクスポートのやり方をあれこれ試すもうまくゆかず、止む無く「Duplicator」でやってみると、すんなりOKとなる。
 
「All-in-One WP Migration」での引越事例:
 
 
 
2. 移行元での作業
 
 
2-1. 「duplicator」のインストールと有効化
 
プラグイン「duplicator」のインストール。
 
プラグイン「duplicator」の有効化。
 
プラグインが有効化されると、メニューに「Duplicator」が表示されるので、「Packages」をクリックする。
 
 
 
2-2. 移行パッケージの作成
 
「移行パッケージの作成」とは、移行のためのプログラム(installer.php)と移行用のデータをセット(=パッケージ)にして生成すること。
 
「Packages」画面が開くので、右上にある「Create New」をクリックする。
 
「1-Stage」タブが開き、エクスポートするファイルに付ける名前が求められる。
 
分かりやすい名前を入力し、「Next」をクリックする。
 
「2-Stage」タブが開き、サイト内のデータをスキャンした結果が表示される。
 
サイト内データのトータルサイズが「500MB」を越えており、続行不可とのこと。
対策は「data filters 」に除外ファイルを追加して、サイズを「500MB」未満にせよとの指示が表示される。
[179MB] /wp-content/uploads/ 
- Add data filters to get the package size under 500MB:
- In the 'Size Checks' section above consider adding filters
- (if notice is shown).
- In Step 1 consider adding file/directory or database table filters.
 
もう一つ、「Name Checks」にもエラーが出る。
 
エラーの内容は次の通りだが、調べても判らない。
Unicode and special characters such as "*?><:/\|", can be problematic on some hosts. Only consider using this filter if the package build is failing. Select files that are not important to your site or you can migrate manually. 
 
 
「1-Stage」に戻り、「Archive」で「Enable File Filters」にチェックを入れ、画像ファイルを除外すべく、「uploads」ディレクトリーを指定する。
 
すると、「2-Stage」でのデータスキャンが問題なく終了し、「Build」ボタンが表示される。
 
「Build」をクリックすると、サイト内データのコピーが始まる。
 
 
 
2-3. 移行パッケージのダウンロード
 
データのコピーが終わると、「Installer」と「Archive(サイト内データ)」のパッケージが出来上がるので、2つ纏めてダウンロードすべく「One-Click Download」をクリックする。
 
パソコンに「Installer」と「Archive(サイト内データ)」、2つのファイルがダウンロードされる。
 
 
 
2-4. 画像ファイルのダウンロード
 
「Duplicator」のエクスポートで除外した、画像ファイルがある「uploads」ディレクトリーを、FTPで別途ダウンロードしておく。
 
 
 
3. 移行先での作業
 
 
 
3-1. WordPressのダウンロードと設置
 
ダウンロードするディレクトリ「work」を作成し、権限を変更した後ディレクトリ移動し、wgetコマンドで、最新のWordPress日本語版をダウンロードして展開する。
 
mkdir /home/yaopi/work
sudo chmod 707 /home/yaopi/work
cd /home/yaopi/work/
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
 
展開すると、「work」の中に wordpress フォルダーが作成されるので、この中身をすべて、Nginxの公開ディレクトリ /home/yaopi/arakan60 の中に設置する。( wordpress の URL: 192.168.nn.nnn/arakan60 となる。)
 
ルートディレクトリー:/home/yaopi/arakan60
★ ルートディレクトリーに、直接 WordPress の中身を設置。
★ このために、「work」に出来た「wordpress」を一旦ダウンロード。
★ その後、「wordpress」の中身だけを「arakan60」にアップロード。
 
★ この後、元の「work」にある「wordpress」ファイは削除。
 
 
 
3-2. 引っ越し元「画像ファイルとInstaller」のアップロード
 
①.別途FTPでダウンロードした、画像ファイルの「uploads」をアップロードする。
 
②.「Duplicator」のパッケージ、「Installer」と「Archive(データ)」をWordPressのルートディレクトリーにアップロードする。
 
 
 
3-3. WordPressへの接続確認
 
ここからは、新しいサーバーを、本番環境(IPアドレスを本番のアドレス)にして立ち上げる。
 
WordPressの一般設定における、
「WordPress アドレス (URL) 」と「サイトアドレス (URL)」
が、本番アドレスで設定される。
 
 
WordPressを設置したURLにアクセスし、Wordpress にアクセスできるか確認する。
https://引っ越し先のドメイン名
 
『さあ、始めましょう!』の画面が正しく表示されればOK。次の「installer.phpでの引越」に進む。間違っても『さあ、始めましょう!』をクリックして、WordPressのインストールを行わないこと。
 
インストールを行った後に、「Duplicator」で移行すると【Hello world!】画面がトップページに表示され、消すことが出来なくなる。
 
 
 
問題発生:WordPressが起動しない!
sudo nginx -t で調べると
2019/12/03 04:33:19 [emerg] 1422#1422: open() "/var/log/nginx/error.log" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
 
【No such file or directory】とのことなので、ディレクトリー /var/log を調べてみると、「nginx」フォルダーがない!。(何故削除されたのか、判らない。)
手動で、「nginx」フォルダーを作成し、再度「sudo nginx -t」を行うと、
 
nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
 
となるも、無視して、URLにアクセスすると、WordPressが起動した。
 
参考:この時の nginx.conf の内容。
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  600;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
 
 
 
3-4. installer.phpでの引越
 
「引っ越し先のドメイン名/installer.php」にアクセスすると、デプロイ画面が表示されるので、利用条件の確認にチェックを入れ、「Next」をクリックする。
 
データのデプロイが始まる。
 
データベースのセットアップ画面が出るので、上から順に「データベースのホスト名」「データベース名」「ユーザー名」「パスワード」を入力し、「Next」をクリックする。この内容は、WordPressの「wp-config.php」の内容と同じである。
 
※:「データベースのホスト名」に、「localhost」がディフォルトで表示されているが、「localhostと必ず入力する
 
「Next」をクリックすると確認画面が出るので、「OK」をクリックする。
 
データベースへの書き込みが始まる。
 
次に、データアップデートの確認画面が表示されるので、「Next」をクリックする。
 
データ移行が完了すると、次の画面が表示される。
「Auto delete installer ...」にチェックを入れておけば、インストールに使った全てのファイルが自動的に削除される。
 
 
HTTP】通信にしたWebサーバーで稼働している「WordPress」を、バージョンアップ等で引越をする場合、この時点で「無限リダイレクトループ」に陥ることがあるので、注意が必要である。
 
 
回避方法:WordPressでの設定。(wp-config.php に追記。)
注意: FORCE_SSL_LOGIN は、Version 4.0 で廃止されたので設定不要。
次の2行を「wp-config.php」の先頭位置に追記。
 * @package WordPress

 */

define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS'] = 'on';
 
WordPressを強制的にSSL化することで、WordPressが吐き出す絶対URLが
<script src="https://..." ></script>
となる。
 
参考:
 
 
「Admin Login」をクリックすると、WordPressへのログイン画面が表示される。
 
WordPressにログインすると、Duplicatorの「Tools」画面が表示され、自動的に削除されたファイルの一覧を確認する事が出来る。
 
以上で、WordPressの Duplicatorによる引っ越しは完了。
 
 
 
3-5. WordPressサイトの動作確認
 
インストール済みのプラグインの中には、「Duplicator」が自動でインストールされ有効になっている。
 
WordPressサイトの各ページにアクセスして、正しく移行されているか確認してみる。
 
 
 
3-6. Duplicatorの「Tools」
 
メニューの「Duplicator」から、「Tools」をクリックする。
 
「Diagnostics」タブが開く。
 
「Stored Data」を開いてみる。「Duplicator」のバージョンは、「1.3.24」。
 
「Server Settings」を開いてみる。nginxのバージョンややWordPressの「Memory Limit」が確認できる。
 
「PHP」セクションでは、PHPの各種設定値が見れる。
 
「PHP Information」を開いてみる。
 
 
「Duplicator」プラグインは、移行が終われば不要であるが、これらの情報が参照できる便利さもある。
 
 
参考:
 
以上。
(2019.12.03)
 

 

スポンサー リンク

 

             

 

 

 
モバイルバージョンを終了