Plesk卒業日記Plesk卒業日記Linux管理をはじめて数年、これまでPleskにお任せして避けてきた自力サーバー管理をはじめることになった。自宅サーバーもやってみたいし。ないブログに表示されています。新しい記事を書く事で広告が消えます。webminの操作にも慣れてきたし、今までPleskにどれだけサーバリソースを使わされていたかということも痛いほどよく分かった。webminは面倒なこともあるが、基本的に最初の設定が完了すればあとはPleskと大差ないユーザビリティを備えていると思う。そんなわけで、もう二度とPleskは使わない・・・言い切ってしまいたいところなのだが、実は問題が一つだけあった。私の仕事では、一台のサーバに異なるドメインの複数サイトをホスティングすることがあるが、普通にwebminをインストールした状態では実現できない。そこで、Virtualminという複数ドメインのホスティングをサポートするためのwebmin追加モジュールをインストールすることにした。Installer」をクリックする。VirtualminにはGPL版とPro版があり、Pro版は有料ライセンスが必要。今回はGPL版をインストールする。http://software.virtualmin.com/gpl/scripts/install.shインストール用のシェルスクリプトに実行権限を付与して、実行する。install.sh./install.sh私の環境では10分くらいでインストールが完了した。先日この記事でphpをソースからビルド・インストールしたと書いたが、サイトを作っていくうちにmb_send_mailが動作していないことが分かった。エラーも出ないし、なんだか理由が分からなかったが、いろいろ調べていくうちにコンパイル時の問題であることが分かった。1という行があるかどうか見てほしい。なかったら、原因はこれだ。1」という一行を追加する。・・・」が続いている最後の行に追加した。どこかにコピーしてバックアップを取っておき、httpdを終了させておく。distcleanを実行し、その上で再度phpをコンパイルする。前の記事でも書いたが、あらためてもう一回私が使ったconfigureオプションを掲載しておく。\'--with-tidy'で、makeするわけだが、私の環境では下記のようなエラーが出てmakeできなかった。1lltdlがインストールされていないのが原因なので、インストールする。以前使っていたサーバから新しいサーバへ引越する手順で結構めんどくさいのがMySQLのデータ引越。DNSも外にあるのでAレコードの変更だけで済むし、コンテンツファイルはまぁサイズが大きくてもtarしてftpで転送するだけなので大した時間はかからない。mysqlもmysqldumpでファイルを付くって、新しいサーバでコマンドラインから投入すれば数分で済むと思っていた。ところが、やってみるとこれが非常に時間がかかる。私のサイトのテーブルは20Mくらいのサイズしかないのだが、試しに移行してみると1時間かかっても終了しなかった。1テーブルだけ(1.4メガくらい)を移行テストしてみたところ、10分かかった。なんでこんなに時間がかかるんだ。ネットでいろいろ調べてみた方法を試してみた。つけると、インサートのたびにキー更新せず、insertが全部完了してからテーブルのインデックスを作るので早くなる。付加してmysqldumpを実行しているので、これはもともとそうなっていた。つけると1行で複数のinsert文を作るので早くなる。これも同様に私の環境では既にそうなっていた。つけるとまとめてコミットするので早くなる、とのことだったので試してみたが、結局前よりも遅くなった。・移行先のmysql設定を見直してみるnet_buffer_lengthのサイズを大きくしてみたが効果なし。key_buffer=256Mquery_cache_size=32Mこんな設定も試してみたが変化なし。myisam_max_sort_file_size=2Gtmpdir=/home/tmpこれも変化がなかった。variables;でエラーになってしまったのでやめた。最終的にはmysqlのデータファイルをまんまコピーするという荒技を試してみた。これを実行するとmysqlのデータがどこに格納されているかが分かる。そのディレクトリにあるDB名のディレクトリを丸ごと圧縮する。dbnameこんな感じで。-これで解凍・展開する。展開するとopt、frm、MYD、MYIなどの拡張子のファイルが沢山できるので、同じようにmysqlのデータ格納ディレクトリを調べて、db名のディレクトリに丸ごとコピーする。データが更新されていたらうまくいかないのでテーブルをロックする、などの注意書きもあったのだが、私の場合は特にそういうことをしなくてもうまくいった。DB更新が多いサイトを運営しているが、3回試して3回ともうまくいった。移行元と移行先でmysqlのバージョンが違っているにもかかわらず。単純にコピーしたいだけの引越ならこれが一番簡単ではないだろうか。いうかmysqlはそういうたぐいの方法を用意するべきじゃない?ちなみにデータベース名やデータベースユーザ名は移行元と先で統一して実験した。