本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
プラグインがうまく動かない
ファイルデータ容量の増大のためなのか、WordPressサイトのお引越しプラグインを利用しているのですが、うまく動きません。
仕方がないので手動でWordPressサイトの引っ越しをしてみます。
基本的に必要な手順
- 移行元データベースのバックアップ
- 移行先へデータベースの復元
- WordPressデータのコピー
- wp-config.phpの編集
- データベース内URL文字列の置換
この記事に書いてある事
ロリポップからロリポップへの手動でWordPressサイトを移動する
- MySQLデータベースの移動について
- WinSCPでのデータコピー
- SSHでのデータコピー
- wp-config.phpの編集について
- Database Search and Replace Script in PHP を使ったURLの置換について
データベースバックアップ
引っ越し元のDBを開きます。
データベースをエクスポートします
データベースの復元
データベースを新しく作成します。
先ほどの手順でバックアップしたSQLファイルをサーバへインポートします。
WordPressデータのコピー
FTPソフトを利用し、WordPressデータをコピーします。
私は、WinSCPというFTPソフトを利用しています。レンタルサーバを運営している会社が準備しているFTP機能でもできるはずなのですが、私の場合は、WordPressのwp-contents/uploadフォルダが大きすぎてロリポップ!FTPではコピーできませんでした。
ロリポップ!FTPの制限は50Mまで。
他の会社に移行する際にもFTPソフトを利用する必要があるかと思います。コピーするソフトは、WordPressをインストールした際に、できているファイル・フォルダ全てです。
WinSCPでもうまくいかなければSSHで
データ量が多いと、コピーに時間もかかりますが、SSH接続でコマンドでコピーするとすぐに終わります。これは、同じレンタルサーバ内の契約の場合にできる手法です。
ロリポップはSSH接続が許可されているので、SSHで接続しコマンドを利用してコピーする方法があります。こちらはGUIではなくCUIでの操作になります。
[chips.jp-mahikari@users web]$ cp -r tech/ tech02
データ量が多くても、ローカルコピーなのでめちゃくちゃ早く終わります。
wp-config.phpを修正する
wp-config.phpを修正します。とりあえず元のファイルをコピーしてバックアップしておき、万一おかしくなったら、そのバックアップから復元して操作します。
wp-config.phpはテキストファイルです。
この作業もロリポップ!FTPでは、名前を変えて同じフォルダに保存する事ができないのでWinSCPを利用しました。
変更する項目は
- /** WordPress のデータベース名 */
- /** MySQL のユーザー名 */
- /** MySQL のパスワード */
- /** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
の4つの項目です
.htaccessの編集
ディレクトリ構成が変わる場合は、.htaccessの編集が必要になります
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /新しいディレクトリ/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /新しいディレクトリ/index.php [L] </IfModule> # END WordPress AddType video/mp4 .mp4 AddType video/webm .webm AddType video/ogg .ogv php_value memory_limit 128M php_value upload_max_filesize 100M php_value post_max_size 100M
編集する項目は
- RewriteBase
- RewriteRule
の2か所です。
例 https://techlive.tokyo/develop → https://tech-live.tokyo/develop02に変更したい場合
RewriteBase /develop/ → RewriteBase /develop02/
RewriteRule . /develop/index.php [L] → RewriteRule . /develop02/index.php [L]
ドメイン変更のためDB内のURLを置換する
URL置換のためのツールの配置
URLの置換には、「Database Search and Replace Script in PHP」を利用します。
ダウンロードしたら、解凍してできたフォルダをアップロードします。
解凍してできたフォルダは
Search-Replace-DB-4.1.1
アクセスする時に長いので、フォルダ名は
SRD
としました。
置換ツールの使い方
http://URL/WordPressディレクトリ/SRD
にアクセスします。設定は下記の通り
※移行元、移行先URLについて
移行元と、移行先のhttp://, https://が変わる場合、URLには、http://まで含めます。変わらない場合は、http://は必要ありません
例 http://techlive.tokyo/develop → https://tech-live.tokyo/develop02 に変更したい場合
移行元 http://techlive.tokyo/develop
移行先 https://tech-live.tokyo/develop02
例 https://techlive.tokyo/develop → https://tech-live.tokyo/develop02に変更したい場合
移行元 techlive.tokyo/develop
移行先 tech-live.tokyo/develop02
置換ツールをDBに接続
DB関係の値を入れて[Test connection]ボタンを押し、DBへの接続がうまくいくと、Success,You are connected.と緑色で表示されます。
[Ds a safe test run]をクリックすると、置換状態がテストされていきます。
プライマリーキーが設定されていないテーブルが出てきて、Search and Replaceがクリックできない状態。
エラー内容は、
The table "wp8_uam_accessgroups_1-4" has no primary key. Changes will have to be made manually. The table "wp8_uam_accessgroups_1-5-1" has no primary key. Changes will have to be made manually. The table "wp8_uam_accessgroup_to_object_1-4" has no primary key. Changes will have to be made manually. The table "wp8_uam_accessgroup_to_object_1-5-1" has no primary key. Changes will have to be made manually.
置換する
テーブルにプライマリーキーがないって。移行元のDBを見てみましたが、元々プライマリーキーがないようです。とりあえず、このテーブルは無視し、もう一度[Test connection]して、[Do safe test run]しない状態で、
Search and Replace してみます。
移行完了!
とりあえず、ホームページ移行完了しました。表示できました。
内部(URL)リンクが切れてる
しばらくして、内部URLリンクが切れている事にきづきました。
こんな時は、プラグインの力を借りてしまいます。(表題と矛盾してるけど)メインはデータコピーでいけるのですが、データベース内に記録してあるURLリンクの文字列を全部一気に変更できるプラグインがあります。
DB操作でこだわってやってもいいのですが、プラグインで済むところはプラグインで済ませます。
Search Regex は、WordPress の投稿、固定ページ、独自の投稿種別、またほかの入力元に対する、強力な検索と置換の機能を追加します。これは WordPress に標準で内蔵されている検索機能を超えており、サイト内に保存されているほぼすべてのデータを検索し置換することができます。単純な検索に加えて、PHP の正規表現を自由に使うことができます。
Search Regexの簡単な使い方
ツール → Search Regex
後は、検索のところに変更したい文字列、置換のテキストボックスに置換後の文字列を入れて検索すれば、置換対象になる文字列が検索されます。
検索ボタンを押すと、対象の文字列を含むページが検索されます。
問題がなければ、「すべて置換」します。
引っ越しの際に使ったSearch Regexプラグインは、その後使う事はないと思います。
プラグインは削除してしまって構いません。