さくらマネージドサーバへの移行メモ
※以前別の場所で書いた文章を備忘的に書き記しておきます。
【投稿年月日】2011-10-20 【ジャンル】PHP/MySQL | 独り言
弊社が関与する全てのWebサイトを、さくらマネージドサーバへ移行しました。今まで3つのレンタルサーバに分散して運営していたのですが、データベース(MySQL)がボトルネックになることが多く(共有サーバということもあって当たり外れが存在する)、また、管理も結構大変だったため、一本化に踏み切ることにしました。新サーバは専有プランなので、他者の干渉は入りません(ただし回線については共有なので影響を受けることがありますが...)。サーバ管理をしたくなかったのでマネージドプランを選択。root権限がないので自由度は限定されますが、特にあれこれしたい訳ではないので十分だと判断しています。でも、サーバのリブートは時々したいかも。
プランの概要
Core i5 プランwww.sakura.ne.jp/managedserver/
- 月額料金: 9,800円
- 初期費用: 45,000円
- OS: FreeBSD 8.1
- CPU: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
- メモリ: 4GB(専有)
- HDD: 500GB(専有)
- RAID構成: RAID1
- 回線: 100Mbps(共有)
- CGI: Perl, PHP(CGI版/モジュール版), Ruby, Python
- データベース: MySQL(無制限), SQLite
- ドメイン数: 無制限(サブドメインも無制限)
- その他: SSH(root不可)、CRON(Web上では5個まで), モニタリングツール, ファイル共有(WebDAV), 再販可
「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の動作が更に早くなりました。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"
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分程度かかる仕様らしいので、さくらインターネットからさくらインターネットへのドメイン移行は、深夜や早朝等のアクセスの少ない時間帯がお勧めとのことです。そういう大事なことは、目立つように書いておいてほしかった。。。且つネームサーバが ns1.dns.ne.jp / ns2.dns.ne.jp になっているため
セキュリティ上の観点より登録を受付することができません
アクセス制限
コンパネの「ファイルマネージャー(旧バージョン)」から簡単にできます。- アクセス制限したいディレクトリを選択した上で、画面右上にある「>> ウェブアクセスの設定」をクリック。
- 「パスワード制限のON/OFF:」を「パスワード制限を有効にする」に変更。
- 「パスワードファイル:」の「編集」から「ユーザ名」と「パスワード」を追加。
- 「パスワードによる制限」の「変更を送信」をクリック。
ファイル共有(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