「500 Internal Server Error」になる
コアサーバーを長年使っていて使いやすいサーバーですが、安いCORE-Aを使っているからか?ワードプレスでアクセスが多いドメインのサイトが頻繁にインターナルサーバエラーになってしまってページが表示されないことがあります。
MovableTypeと違ってページを予め作らないで、PHPからそのつど生成するから負荷がかかってしまっているようです。
プランのグレードをアップすればインターナルサーバエラーにならない可能性が高いのですが、XserverのX10プランも契約しているのでそっちのサーバーでは特にエラーなど起こっていないので移行することにしました。
どのブログかというと・・・Bey.jpです。
このブログは2ヶ月ほど毎日更新したらページビューが順調に上がって今は日400ページビューいくようになって、ずっと更新していったらどんどんアクセスしてくれる人が増えることが予想されるので今のうちにサーバーを移行しておきます。
コアサーバーCORE-AからエックスサーバーX10へ移行
ワードプレスは、PHPやJS,CSS、画像ファイルなどの集合体と、データーベースのMySQLを使用していますので、ファイル全部とMySQLデーターベースのダンプを行ってダウンロードします。
ワードプレスファイルのダウンロード
ファイルのダウンロード
コアサーバーの場合は以下のようなパスになると思います。
/virtual/ID/public_html/bey.jp
FTPソフトでコアサーバーにログインしてドメインのディレクトリまるごとダウンロードします。
僕はWinSCPを使っています。SFTP(暗号化されたFTP)も使えて普通のFTPも使えて、Putty(ターミナル)も使えてかなり便利です。
Delete Post Revisionでリビジョンを削除する
ファイルをすべてダウンロードしたら次はMySQLデーターベースをダンプしますが、半年とか1年以上記事を書いたワードプレスのMySQLデーターベースの中にはいらないリビジョンファイルが多数存在しています。
リビジョンとは投稿前の記事の状態や下書前の記事の状態を保存しておいてくれて、いざというときに前の状態にもどしてくれる便利な機能なのですが、それが溜まっていくとデーターベースがえらいデカくなってしまうので移動時にはリビジョンを削除してからやったほうがストレスなくMySQLをダンプできます。
ワードプレス Delete Post Revision プラグイン インストール
プラグイン>新規追加から「Delete Post Revision」で検索します。
検索結果で表示されますのでインストール
プラグインを有効化を押すと使えるようになります。
Delete Post Revisionを使ってリビジョン削除
Delete Post Revisionは左メニューのツール>Delete Post Revisionにあります。
するとこのような画面になるのでどんなリビジョンがあるのか軽くチェックします。
一番下の上記のような削除のボタンがあるので押します。1423こもリビジョンがあった!これで綺麗さっぱりリビジョンが削除されました。
もしリビジョンをとっておきたい場合はこの作業はやってはいけません(汗)
MySQLデーターベースをダンプする
該当のMySQLデーターベースをサーバーのディレクトリトップにダンプする作業です。
Coreserverでしたら、/virtual/ID(ユーザ名)/
のディレクトリにmysql_bey(bey.jpの場合).dump。
というファイルができ、これをダウンロードします
Coreserverの管理ページにアクセスしてデーターベースを選びます。
存在するデーターベースが一覧表示されるので該当のラジオボタンを選んで保存ボタンを押します。
そうすると3分後程度でIDトップのディレクトリにダンプファイルが保存されていますのでダウンロードします。
こんな風に保存されています。ちなみに古いダンプファイルは名前変更されて.backupファイルになります。
パソコンにダウンロードしました。
エックスサーバーでドメイン設定
こんどは、新サーバーになるXserverでドメインの設定をします。ここでドメインの設定をしてもまだネームサーバーの変更をしなければ新サーバーへはアクセスされませんので余裕をもって移動していきます。
新サーバーで正常に動くか確認してから、ネームサーバー変更を行って最終的に誰でも新サーバーにアクセスされるようになりますのでネームサーバーを変更しない限り新サーバーにアクセスされることはありません。
Xserverのサーバーパネルにアクセスして「ドメイン設定」を選びます。
次にドメインを記入します。今回は、「bey」でjpドメインを選びます。
ドメインの追加が完了しました。ここでXserverにbey.jpのディレクトリが作成されます。
ワードプレスのファイル アップロード
Xserverにbey.jpのディレクトリができたら今度はアップロードします。
Coreserverからダウンロードしたフィアルを全部Xserverにアップロードしていきます。
Xserverですと/bey.jp/public_html/
にアップロードします。
すでに上記のような.htaccess,default_page.png,index.htmlというファイルがありますが、削除して構わないと思います。
移行後のエックスサーバーのファイル設定
wp-adminの中の.htaccess
wp-adminの中の.htaccessはCoreserver用のなので削除しました。
# 画像・ファイルアップロード <files async-upload.php> AddHandler application/x-httpd-phpcgi .php </files> # プラグイン・テーマ 新規インストール/アップグレード <Files update.php> AddHandler application/x-httpd-phpcgi .php </Files> # 本体アップグレード <Files update-core.php> AddHandler application/x-httpd-phpcgi .php </Files>
一応、Coreserverのwp-adminで設定していた.htaccessを備忘録で書いておきます。
wp-config.phpの設定
wp-config.phpの以下を変更
//ini_set("session.save_path", "/virtual/ID/public_html/bey.jp/session");コメントアウト define('DB_NAME', 'bey'); define('DB_USER', 'bey'); define('DB_PASSWORD', 'パスワード'); define('DB_HOST', 'xserverに変更');
設定が完了したら、 wp-config.phpのパーミッションを400にして管理者のみ読めるようにします。
ドメイントップの.htaccessの設定
wp-config.phpはデーターベースのパスワードなどが保存されているため他人に見られたらマズイので以下のように外部から.htaccessにアクセスできないようにしておいたほうが良いかと思います。
<files wp-config.php> order allow,deny deny from all </files>
上記を.htaccessに入れておきましょう。
phpMyAdminでMySQLダンプフィアルをインポート
専用のMySQLデーターベースとユーザを作成
Xserverのサーバーパネルの「MySQL設定」を押します。
「MySQLの追加」タブでデーターベース名を記入します。文字コードはそのままUTF-8にします。
データーベースができましたがアクセスできるユーザがいないためユーザを作成します。「MySQLユーザの追加」タブからユーザとパスワードを記入します。
ユーザーができたら「MySQLの一覧」から該当データーベースのユーザを選んで追加ボタンを押します。
以上でMySQLデーターベースとユーザができました。
phpMyAdminでワードプレスのデーターベースをインポート
MySQLデーターベースとユーザができたらそれにワードプレスのデータを入れていく作業をします。phpMyAdminで旧サーバーからダンプしたmysql_bey.dumpファイルをインポートします。
phpMyAdminもサーバーパネルにリンクがあります。
リンクを押すとID、パスワードを聞かれますので先ほど作成したMySQLのユーザとパスワードを入力します。
phpMyAdminにアクセスできたらデータベースを選びます。先ほど作ったデータベース名が左上のほうに表示されています。
データベースにアクセスしたらまだテーブルが無い状態なので早速 インポートタブを押してデータをインポートしていきましょう。
参照ボタンで、旧サーバーからダンプしたmysql_bey.dumpファイル
を選んで実行ボタンを押すだけです。ファイルの文字セットはそのままUTF-8にしたままです。
以上で新サーバーに今まで使っていたデータベースがそのまま使えるようになりました。
エックスサーバー 動作確認URL
Xserverには便利な機能があってサーバー移行時に使う「動作確認URL」のページがあります。これを使うとサーバー移行前でも新サーバーのページを確認でき、正常に表示されるかなどのテストができます。
Xserverのサーバーパネルの「動作確認URL」を押します。
ドメインを選びます。
これで仮のドメインができました。これは新サーバーの確認が終わったら削除します。
http://bey-jp.check-xserver.jp
にアクセスしたらば正常に表示できました。表示するだけならば全ページ確認できるようです。
http://bey-jp.check-xserver.jp/wp-admin
こちらにアクセスしたら今使っている
https://bey.jp/wp-admin
ここにリダイレクトしてしまったので動作確認URLではワードプレスの管理画面は使えないようです?
なので今使ってるパソコンのhostsを変えて擬似的にドメインのアクセス先を変更して設定してみます。
ワードプレスのアドミンに入って設定する必要がない場合は特にhostsを変更して無理にアドミンページに入る必要は無いかと思います。
パソコンのhostsを変更する
今回はこの記事を新しい記事をサーバーで書くこと(この記事)やちょっとした変更などを事前にやっておくためにhostsで新サーバー(xserver)にアクセスしてみます。
hostsはパソコンからアクセスするドメインとIPアドレスの対応を設定するファイルです。自分のパソコン限定でドメインのアクセス先を自由に設定できます。
開発の時にローカルのサーバーを使っている時など自由にドメインを設定できるので便利です。
今回は稼働中のドメインを移動する前に新サーバーが正常動作しているか確認のためにhostsを使います。
C:WindowsSystem32driversetchosts
このファイルを秀丸などで開きます。
このように編集するのですが、使っているXserverのIPアドレスが分からない場合はサーバーパネルの「サーバー情報」のページに書いてあります。
hostsを設定して保存したらすぐに自分のパソコンだけ新サーバーのbey.jpにアクセスするようになります。
他のパソコンはまだ旧サーバーのCoreserverにアクセスしていますので慌てずにゆっくり作業ができます。
ネームサーバー変更
Xserverの新サーバーのサイトが正常稼働することが確認できたら最後にネームサーバーの変更をしてこのサーバー移行作業が全て完了します。
コアサーバーからエックスサーバーに変更完了しました。
完了後hostsファイルを忘れずに元にもどしておきましょう。
#IPアドレス bey.jp
このように仮に設定した行を#でコメントアウトするか行を削除しましょう。
以上でコアサーバーからエックスサーバーの移行完了しました。
今度は500 Internal Server Error起きないといいけど・・・しばらく様子見です。
コメント