さくらマネージドサーバへの移行メモ

※以前別の場所で書いた文章を備忘的に書き記しておきます。

【投稿年月日】2011-10-20 【ジャンル】PHP/MySQL | 独り言

 弊社が関与する全てのWebサイトを、さくらマネージドサーバへ移行しました。今まで3つのレンタルサーバに分散して運営していたのですが、データベース(MySQL)がボトルネックになることが多く(共有サーバということもあって当たり外れが存在する)、また、管理も結構大変だったため、一本化に踏み切ることにしました。

 新サーバは専有プランなので、他者の干渉は入りません(ただし回線については共有なので影響を受けることがありますが...)。サーバ管理をしたくなかったのでマネージドプランを選択。root権限がないので自由度は限定されますが、特にあれこれしたい訳ではないので十分だと判断しています。でも、サーバのリブートは時々したいかも。

プランの概要

Core i5 プラン
www.sakura.ne.jp/managedserver/

「php.ini」の設定・「eAccelerator」の導入

 「php.ini」の設定はコンパネからできるので楽ちんです。
zlib.output_compression=1
display_errors = Off
post_max_size = 128M
upload_max_filesize = 128M
max_file_uploads = 100
[eaccelerator]
zend_extension="/home/[ユーザー名]/local/lib/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/home/[ユーザー名]/local/cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
 「php.ini」を見れば分かるように、PHPを高速化するために、コンパネからPHPをモジュール版に変更した上で、「eAccelerator」 sourceforge.net/projects/eaccelerator/ を入れました。「eAccelerator」の導入に当たっては、さくらのマネージドサーバ Core 2 Duoプラン体験記その2 zapanet.info/blog/item/2051 を参考にしました。おかげでPHPの動作が更に早くなりました。
 

MySQLデータの移行

 やはりと言うか、MySQLデータの移行に手間取りました。PHP5の場合、文字化けすることが多い。。

1.旧サーバからMySQLデータをエクスポート

 基本的にphpMyAdminのエクスポート機能を使って行いました。データ量が巨大な一部テーブルについては、SQL形式ではなくCSV形式で落としました。
 本来ならmysqldumpを使ってサクッとgzip形式とかでエクスポートしたかったのですが、いろいろなオプションを付けてみても文字化けがひどく断念。。

2.新サーバへMySQLデータをインポート

 FTPを使って「/home/[ユーザー名]/」にMySQLデータを置いた後、SSHを使って以下のようなコマンドを実行。
mysql -u[データベースのユーザー名] -p[パスワード] [データベース名] < [MySQLデータ].sql
 CSVの場合は「[テーブル名].csv」にリネームしたものを同様にFTPでアップしてSSHで以下のようなコマンドを実行。
mysqlimport --host=localhost --user=[データベースのユーザー名] --password=[パスワード] --local --replace --fields-terminated-by=',' [データベース名] /home/[ユーザー名]/[テーブル名].csv
 あるいはphpMyAdminから
load data LOCAL infile '[テーブル名].csv' into table [テーブル名] FIELDS TERMINATED BY ','
とか。

ドメインの移行

 他社のレンタルサーバからのドメイン移行については、マニュアルや他のサイトを参考に、問題なくできました。
 問題なのは、さくらインターネットの別プランからの移行。ドメイン移行をしようとしても
指定されたドメインもしくはその上位のドメインにはゾーンが設定され、
且つネームサーバが ns1.dns.ne.jp / ns2.dns.ne.jp になっているため
セキュリティ上の観点より登録を受付することができません
と表示されすぐに反映されません。サポートに確認したところ30分程度かかる仕様らしいので、さくらインターネットからさくらインターネットへのドメイン移行は、深夜や早朝等のアクセスの少ない時間帯がお勧めとのことです。そういう大事なことは、目立つように書いておいてほしかった。。。

アクセス制限

 コンパネの「ファイルマネージャー(旧バージョン)」から簡単にできます。
  1. アクセス制限したいディレクトリを選択した上で、画面右上にある「>> ウェブアクセスの設定」をクリック。
  2. 「パスワード制限のON/OFF:」を「パスワード制限を有効にする」に変更。
  3. 「パスワードファイル:」の「編集」から「ユーザ名」と「パスワード」を追加。
  4. 「パスワードによる制限」の「変更を送信」をクリック。

ファイル共有(WebDAV)

 500GBなんて使い切れないと思いましたが、標準でファイル共有(WebDAV)が付いているので、これを活用することに。試しに使ってみたところ、取り合えずエクスプローラーを使って最低限のこと(ファイルのアップロードとダウンロード)はできますが、Windows7のためか非常に使い勝手が悪いです。
 サーバ側ではコンパネの「ファイル共有(WebDAV)」で「新しいファイル共有フォルダの作成」から共有フォルダとアクセスユーザ設定を行なった後、各ユーザーのPCからは以下の手順で接続できるようになります。なお、ユーザ名はメールやFTPと共通なので、サーバ側の設定は簡単にできます。

Windows VistaでのWebDAV接続
rose.cc.tsukuba.ac.jp/manual/webdav/vista.html

新サーバに移行して(感想)

 移行して良かったです。特にMySQLが快適になりました。また、PHPをモジュール版にした上で「eAccelerator」を導入したことから、PHPの高速化をはかることにも成功しました。
 地味に嬉しいのは「モニタリングツール」。ほぼリアルタイムでサーバがどのようになっているのかを確認することができます。
モニタリングツール

 次にやることは、EDIUNET正式版のリリースです! 今年中にやりたいです。

EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript