会社からテスト環境であるAWSのEC2に置かれたWordPress環境を本番環境であるさくらレンタルサーバーにデータを移行する際に鬼詰まりしたので共有します。
前提条件
さくらレンタルサーバーに契約して、さくらのURLやコントロールパネルやFTPの情報をもらっている。
DBの移行
旧環境のDBをphpMyAdminなどからエクスポートします。
さくらレンタルサーバーのコントロールパネルからデータベースを新規作成します。
新規作成後はデータベース一覧から対象のDBのphpMyAdminに入って、そこから先ほどエクスポートしたSQLファイルをインポートします。
インポート後はデータを一部変更する必要があります。
wp_optionsテーブルのsiteurlとhomeが旧URLになっていると思うので、こちらを新URLに変更する。
## ファイルの移行
FTPソフトなどを使って、旧環境からローカルPC環境に保存する。
新環境に適応される為に2つのファイルを変更する。
.htaccess
AWSでテスト環境を構築した場合、下記のBEGIN/END SAKURA Internet Inc.
の記述がない為、こちらを追加する必要がある。
これを追加しなかったため、本ッッ当に詰まりました!!
この記述はコントロールパネルからWordPressをインストールした際に.htaccessの中に生成されたものを流用しました。
# BEGIN SAKURA Internet Inc.
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(css|js)$">
ExpiresDefault "access plus 1 week"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>
# END SAKURA Internet Inc.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
wp-config.php
ここはさくらのコンパネで作ったDBの情報を入れるだけです。
他のサイトにもよく解説されているので、難しくないです。
1点だけMySQLのホスト名の部分はデータベースサーバー名を入れます。
この部分はさくらのコンパネのデータベース詳細から確認する事ができます。
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
define( 'DB_NAME', '' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', '' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '' );
/** MySQL のホスト名 */
define( 'DB_HOST', '' );
/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', '' );
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );
構築を進めた後に、新しいURLでサイトが正しく表示されないケースがあります。
その場合はこのファイルの最下部に下記のコードを入れるとうまくいきます。
update_option( 'siteurl', 'http://[サイトURL]' );
update_option( 'home', 'http://[サイトURL]' );
ファイルを変更した後は、新しい環境にFTP接続をして/home/[サイト名]/www/
直下に先ほど保存したWPのファイルを置きます。
エラー対応
以上で基本はWordPressの画面が表示されると思いますが、それでもサイトが表示されない場合があります。
その場合は以下の原因も調査してみるといいと思います。
・パーミッションの変更
・プラグインの一時無効化