サーバ&DB

500エラー頻発でさくらインターネットの共有サーバからVPSに引越しした際のメモ(初心者向け)

さくらインターネット さくらインターネットのレンタルサーバ(共有サーバ)のプレミアムプランを利用し、マルチドメインでWordPressをいくつか稼働させていたのですが、ページの公開時や、閲覧時などで500エラー(画面が表示されないなど含め)が頻発していたので、さくらインターネットのVPSに引越しした際のメモ、2013年8月版です。 詳しいことは参考ページにおまかせするとして、全体の流れを初心者向け、備忘録的に記載。

さくらインターネットVPSに引越した感想

結論として、引越しして良かったです。VPSは管理をしなければいけないという面倒はありますが、スペックは同程度の金額のレンタルサーバ(共有サーバ)よりも高い、そしてカスタマイズ(最適化)できるので、サイトの表示速度も上がり、500エラーもなくなりました。 ちなみに、さくらインターネットのVPS。

メモリ2Gのプラン(1,480円/月)に変更しました。 FireFoxのFireBugのPage Speedのスコアは以下のとおり。 移設前:Page Speed Score: 77/100 移設後:Page Speed Score: 88/100 load averageもまだまだ余裕があるので、別で借りているの共有サーバのサイトも移設しようかと思っています。

さくらインターネットVPSに移設する流れ

ざっくりとした順番は以下のとおり。まずは項目。2013年8月時点、初心者でも使える(ターミナルなど黒いコマンド画面を使ったりするので・・)さくらインターネットでそのままコピペで使えるものだけを紹介しているつもりですが、うまくいかなかったらごめんなさい。 詳細は過去記事「WordPressの効率的な移設(引越し)手順まとめとチェック項目備忘録」も参考になるかと。。 サーバを変更すると、72時間くらいは旧サーバと新サーバの両方にアクセスされる状況になる=サイトの更新ができない(し辛い)ので注意が必要です。

  1. 元サーバのファイルを整理してからローカル環境(自分のPC)にダウンロードする
  2. phpMyAdminからサイトの.sqlファイルをダウンロード
  3. VPS環境構築
  4. .sqlファイル、元ファイルのデータをアップロード
  5. MySQLにデータベースを作成
  6. wp-config編集
  7. バーチャルドメイン設定
  8. ドメイン移動
  9. アップデート設定
  10. Apche、gzip設定
  11. MySQLカスタマイズ
  12. メール設定
  13. 3日後くらいに元ファイル削除

1.元サーバのファイルを整理してからローカル環境(自分のPC)にダウンロードする

元のサーバ(共有サーバ)のデータをローカル環境(自分のPCに)ダウンロードします。FTPなどを使うのが一般的だと思います。 その際に可能(わかるの)であれば、

  • バックアップファイルやエラーログなど、重いファイルを削除(移動させる)する
  • zip圧縮してダウンロード

と良いですが、わからなければそのままダウンロードすれば良いです。 zipする方法は、SSHで接続してzipコマンドでOKです。 画像ファイルなどが多いと時間がかかります。

2.phpMyAdminからサイトの.sqlファイルをダウンロード

さくらインターネットのサーバコントロールパネルから、phpMyAdminにアクセス(データベースの設定→管理ツールログイン)し、サイトのsqlファイルをエクスポートします。その際に「DROP TABLE を追加」にチェックしておくと良いです。

3.VPS環境構築

さくらインターネットVPS構築は2013年8月時点で、以下のサイトそのままで使えます。わかりやすいです。マルチドメインを設定する際にサイトドメイン名のフォルダ(debate.jpなど)にしておくとわかりやすいかと。 Sakura VPS マニュアル

4.sqlファイル、元ファイルのデータをアップロード

.sqlファイル、元ファイルのデータを、マルチドメインで作成したディレクトリ(フォルダ)にアップロードします。 zip圧縮していれば,unzipコマンドで解凍する。 ディレクトリの構成は元サイトと変えないように注意です。

5.MySQLにデータベースを作成

MySQLにデータベースを作成し、.sqlファイルをインポートします。ターミナル(コマンド)からSSHで接続し、suコマンドでroot、MySQLにログイン後、use データベース名でデータベースを選択、 source /var/www/html/作成したドメイン名/sqlファイル名.sql でインポートできます。

6.wp-config編集

MySQLのユーザ名やデータベース名が変わっていなければそのままでOKですが、変えているならwp-config.phpファイルを適宜修正します。 この状態で、ブラウザから さくらインターネットVPSのアドレス/作成したディレクトリ名 でアクセスすると、サイトが表示されるはずです。(WordPressの404ページが表示されると思います。) データベース接続エラーがでたのなら、wp-config.phpファイルの設定ミス、もしくはMySQLが起動していない可能性があるかと。

7.ドメイン移動

基本的な設定は以上で終了です。もうアクセスさせても大丈夫なはずなので、ドメインを変更します。ドメイン(URL)にアクセスした場合に、旧サーバでなく新サーバに行ってくださいね!という設定です。 お名前.comでドメインを取得している場合には、以下サイトの手順で設定を変更すると、VPSにアクセスされるようになります。ちょっとお名前.comのメニューの構成が変わっているので探してください。 http://aotanbo.net/blog/?p=1565 注意点としては、ドメインの設定を変更してから設定が完了するまでに最大72時間ほどかかります。しかも、アクセスする端末や状況によって、新サーバと旧サーバをいったりきたりすることもあります。 上記方法で設定を変更した場合、どちらのサーバにアクセスしているのかわからなくなるので、新サーバのCSSを一部旧サーバの設定と変更(どこかの文字色や、線の色など)しておくと、現在どちらのサーバにアクセスしているのか判定できるかと思います。

8.アップデート設定

前項までで、ドメインでアクセスできる環境になっています。 ただ、このままだとプラグインの更新や、画像ファイルのアップロードができない状態かと思います。 なので、これの設定を。 まず、FTPを設定せずに、SFTPなどでファイルをアップロードした場合であれば、プラグインの更新時にFTPの設定が要求されるのを解除しないといけないので、wp-config.phpに以下を追記します。

define('FS_METHOD','direct');

wp-config.phpを修正したあとは、必ずサイトを確認してくださいねと。というか、先に(ドメイン変更前に)記載しておくと良いかもですね。 そしてWordPressのフォルダの所有者を変更します。SSHでログイン後、WordPressのフォルダを指定して、以下のコマンドです。

chown -R apache:root /var/www/html/作成したドメイン名

細かく書くとアレですが、簡単にいうとWordPressの関連フォルダの所有者はApacheというWebサーバですよという指定です。これをしないと、ファイルの更新ができない=プラグインやテーマの編集を管理画面からできないです。 また、WordPressの各ファイルに所有者でないと変更できない設定とかが入っており、WordPressはApacheで動いているので、Apahceが所有者=オーナーですよという変更をかけます。 これで基本的にはOK(なはず)です。 お疲れ様でした。

9.Apche、gzip設定

ちょっと表示速度を早めたりする方法です。gzipというのは、Webサーバがブラウザにファイルを送るときに圧縮して送ってくれる=通信容量が減って早くなるという設定です。 CPUを使うのでPCの負荷と相談したほうが良いらしいのですが、WordPressの場合は通常のVPSのスペックであればCPU負荷は余りがちかと思うので、利用したほうが良いと思います。 gzipを設定するには、mod_deflateというモジュールが必要なのですが、2013年8月時点で上記方法でApacheを設定した場合には、すでに入っているかと思いますので、 /etc/httpd/conf.d ディレクトリの中にdeflate.confというファイルを作成し、中には以下のように記述します。

[html]

<Location />

# DEFLATEの有効化
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/x-javascript application/javascript

# 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮
BrowserMatch ^Mozilla/4 gzip-only-text/html

# 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# 送信先ブラウザがMSIEの場合は全て圧縮する
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを送信しないようにする
Header append Vary User-Agent env=!dont-vary

</Location>

[/html]

これでApacheを再起動(/etc/init.d/httpd restart)します。gzipされているかどうかは、以下のサイトから確認できます。 http://www.gidnetwork.com/tools/gzip-test.php

10.MySQLカスタマイズ

WordPressの効率的な移設(引越し)手順まとめとチェック項目備忘録 に記述したMySQLのカスタマイズを行います。

11.メール設定

この状態ではメールが送信できない状況で、さくらインターネットでは本契約してからでないとメール送信できないそうなので、本契約してからメール設定が必要です。

12.3日後くらいに元ファイル削除

ドメインが浸透したら、元サーバのファイルを削除します。 という感じで完了かと。。。

コメントを残す