Windows XP 自宅サーバで FastCGI を利用する for Movable Type 3.34
Windows XP 自宅サーバへの FastCGI モジュールのインストールおよび、Movable Type 3.34 を FastCGI アプリケーションとして利用する方法をご紹介します。
Movable Type に FastCGI を適用する記事「Running Movable Type Under FastCGI」には、サーバへの FastCGI モジュールのインストール手順が掲載されておらず、Windows + FastCGI の設定方法についても(日本の)ウェブ上で詳細に解説された記事が少ないようです。
ということで、アプリケーションの実装やサーバのチューニング等、記述不足な部分もありますが、Apache HTTP サーバへの FastCGI インストール手順、および Movable Type 3.34 を FastCGI を利用して動作させる手順を本エントリーでまとめてみました。
久しぶりの自宅サーバネタです。
なお、Linux(Fedora Core 6)版での FastCGI + Movable Type 3.34 導入手順が「The blog of H.Fujimoto:Movable Type 3.34をFastCGIで動作させる手順」で紹介されています。
Windows XP での動作確認環境は下記の通りです。
- Apache 2.0
- Active Perl 5.8.8
- MySQL 5.0
以下設定手順です。通常の自宅サーバの設定がすでに行われていることを前提に書いてます。
ちなみに試してみたところ、Movable Type の管理画面の操作が体感で 3 倍以上早くなりました。是非通常の運用環境でも使ってみたいところです。
1.FastCGI モジュールのダウンロード
HTTP サーバで FastCGI を利用可能にするため、Apache HTTP サーバに読み込ませるためのモジュールをダウンロードします。
FastCGI のトップページすぐ下にある Servers という項目の Apache の current: download のリンク(ここに最新版がある)をクリックします(下)。

そして投稿時点では最新の、
mod_fastcgi-2.4.2-AP20.dll
のリンクをクリックして FastCGI モジュールをダウンロードします。
この mod_fastcgi-2.4.2-AP20.dll というファイル名は、前半の数字が mod_fast 自体のバージョン、後半の数字が Apache のバージョンみたいですので、Apache 1.3 系を使用している場合は同じページの mod_fastcgi-2.4.2-AP13.dll を使用すると思います。
また過去のモジュールは、同じページの old/ をクリックしたところにあります。
ダウンロードした mod_fastcgi-2.4.2-AP20.dll を mod_fastcgi.dll にリネームし、Apache の modules フォルダに移動します。リネームしない場合は、次項の httpd.conf の LoadModule ディレクティブでファイル名を合わせてください。
参考:
- Ruby on Rails:Fast CGI and Apache2 for Windows XP
- Ruby on Rails:Fast CGI and Apache2 for Windows without VirtualHosts
2.httpd.conf 修正
次に、ダウンロードした FastCGI モジュールを Apache で読み込む設定と .fcgi という拡張子のファイルで FastCGI を利用する設定を行います。
httpd.conf を任意のエディタで開き、下記の
#LoadModule rewrite_module modules/mod_rewrite.so
のコメント文字を削除して、
LoadModule rewrite_module modules/mod_rewrite.so
にします。
また、その下辺りに
LoadModule fastcgi_module modules/mod_fastcgi.dll
を新しく追加します。
さらに
AddHandler fastcgi-script .fcgi
を <Directory "[ドキュメントルート]">?</Directory> の中、あるいは他の AddHandler ディレクティブの設定と同じ辺りに追加します。
なお、通常の CGI が実行できる状態(Options ディレクティブに ExecCGI の追加)を前提に話を進めておりますので、その辺りの設定は他のサイトを参考に設定してください。
動作確認するのであれば、最低限この設定で良いみたいですが、実際に運用する場合は FastCgiConfig ディレクティブ等を追加してチューニングする必要があります。そうしないと(多分) FastCGI で Apache のメモリ(プロセス)が大量に消費される可能性があります。
参考:
3.Perl モジュールをインストールする
ここでは Perl プログラム(ここでは Movable Type)から FastCGI を利用するための環境を作ります。
Perl で FastCGI を利用するには、FCGI と CGI::Fast というモジュールが必要です。
説明は省略しますが、ActivePerl 5.8.8 の PPM version 4 から GUI がデフォルトで起動されます。下の説明ではコマンドラインから直接ダウンロードしていますが、GUI の場合は下記の記事を参考に予め修正した方がいいでしょう(Perl のバージョンが低ければ問題ないかもしれません)。
参考:
MS-DOS 画面より下記のコマンドを入力します。単に ppm と入力すれば GUI を利用してダウンロードできます。
C:¥>ppm install FCGI
Downloading ActiveState Package Repository packlist...done
Downloading ActiveState Package Repository ABI PPD...not modified
Downloading ActiveState Package Repository ACH-Builder PPD...not modified
Downloading ActiveState Package Repository ACH-Generator PPD...not modified
:
(延々と続く)
:
Downloading ActiveState Package Repository xmlrpc-pureperl PPD...not modified
Downloading ActiveState Package Repository xslt-parser PPD...not modified
Downloading ActiveState Package Repository your PPD...not modified
Downloading FCGI-0.67...done
Unpacking FCGI-0.67...done
Generating HTML for FCGI-0.67...done
Installing to site area...done
6 files installed
参考までに、perl 5.8.7.815 では下記のようになりました。
C:¥>ppm install FCGI
====================
Install 'FCGI' version 0.67 in ActivePerl 5.8.7.815.
====================
Installing C:\usr\site\lib\FCGI.pm
Installing C:\usr\site\lib\auto\FCGI\FCGI.bs
Installing C:\usr\site\lib\auto\FCGI\FCGI.dll
Installing C:\usr\site\lib\auto\FCGI\FCGI.exp
Installing C:\usr\site\lib\auto\FCGI\FCGI.lib
Installing C:\usr\html\arch\FCGI.html
Installing C:\usr\html\site\lib\FCGI.html
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Successfully installed FCGI version 0.67 in ActivePerl 5.8.7.815.
CGI:Fast はデフォルトでインストールされている(多分 ¥usr¥lib¥CGI¥Fast.pm)ので、インストール不要です。というか、ppm コマンドでは取得できません。
4.Movable Type の FastCGI 用ファイル作成
ここからは FastCGI アプリケーション側の設定です。
Movable Type インストールディレクトリにある下記の CGI ファイルをコピーして、.fcgi にリネームします(単にリネームでもOK)。
mt.cgi→mt.fcgimt-comments.cgi→mt-comments.fcgimt-tb.cgi→mt-tb.fcgimt-view.cgi→mt-view.fcgimt-search.cgi→mt-search.fcgi
5.Movable Type 設定ファイル修正
mt-config.cgi を任意のエディタで開き、下記を追加します。
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi
ViewScript mt-view.fcgi
以上です。
Apache を再起動し、正常に立ち上がれば OK です。そしてブラウザから mt.fcgi にアクセスしてみてください。
参考:
メモリ増設
現在運用中の自宅サーバのメモリを増設しました。デフォルトの 512MB(256MB×2) にバルクメモリを 1GB(512MB×2)追加し、1.5GB にしました。
自宅サーバは24時間稼動させているので、ブラウジングやメール・エントリー投稿・カスタマイズの確認や画像作成等、他の作業をついつい行ってしまう訳です。が、Apache を起動しているところにいくつかのアプリケーションを立ち上げるとあっと言う間に 512MB を超え、メモリのスワッピングが発生してしまい、精神衛生上良くない状態が続いていました(他のマシンがあるのでそちらを使えばいいのですが)。
で、「いつかメモリを増設しよう」と以前から考えていたのですが、ようやく秋葉原のソフマップでまあ許せる値段で売っていたのを購入しました。
メモリ購入後は標準構成のメモリを外す予定でしたが、メモリ・スロットが4DIMMソケットあるので、元のメモリは外さずに購入したメモリ・モジュールを2枚追加し、計4枚組み込みました。マザーボードは865Gでデュアル・チャネル・モードに対応しており、デュアル対応させるためには標準構成と同一のメモリ・モジュールを増設する必要があったようですが、BIOSで確認したところ
- 1536MB DDR/333MHz デュアルチャネル
と表示されています。
ということで、アプリケーションを複数起動しても全くストレスなく動作するようになりました。また増設して初めて知ったのですが、今まで表示に結構時間がかかっていたエクスプローラーまでサクサク動くようになりました。
ある程度のCPUを搭載していながら動作が遅いと感じている方はメモリ増設を検討されてはいかがでしょうか。
サーバ不具合のお詫び(2005/10/23)
本日未明、当サイトにアクセスできない状態が続いておりました。
原因は、自宅サーバである Windows XP へ他のPCを接続してフォルダの共有を行った際にファイアウォールおよび認証によるアクセスの設定が自動的に有効になってしまったようです。
現在、設定を修正して正常に接続されることを確認しております。ご迷惑をおかけ致しましたこと、この場をお借りしてお詫び申し上げます。
Movable Type + SQLite
3.2-ja では BerkeleyDB 使用による再構築の不具合が発生しておりますが、それを差し引いても BerkeleyDB は根本的に動作が遅いというのは否めません。
ということで、Movable Type + SQLite を使用する場合の設定方法です。DBの設定が簡単&高速なので、特に自宅サーバで BerkeleyDB を使用されている方(で MySQL の環境構築が困難な方)はこちらに乗り換えられることをお勧めします。
以前、MySQL(+PHP) の環境設定でかなりてこずった経験があるので、「SQLite も似たようなもの」という先入観がありましたが、実際に試してみるとその想いは完全に覆されました。後述する Perl モジュールの DBD-SQLite さえインストールできれば、あとの設定は BerkeleyDB 並、つまりディレクトリを作成して、mt-config.cgi にそのパスを記述するだけです。
1項はWindows自宅サーバでの Perl モジュールの DBD-SQLite インストール方法について記しています。レンタルサーバの場合は1項を読み飛ばしてもらえれば結構ですが、DBD-SQLite がインストールされていることが前提となります(使用可否は mt-check.cgi の実行画面から確認してください)。
以下、設定方法です。
1.DBI-SQLite のインストール
SQLite用Perlモジュールの DBI-SQLite をインストールします。Perlがインストールされていることが前提です。
1.1 PPMによるインストール
MS-DOSプロンプトを開いて下記を実行します。下記は5.6.xの例です。
C:¥>ppm
PPM interactive shell (2.2.0) - type 'help' for available commands.
PPM> install DBD-SQLite
Install package 'DBD-SQLite?' (y/N): y
Installing package 'DBD-SQLite'...
Downloading http://ppm.activestate.com/PPMPackages/5.6/MSWin32-x86-multi-thread/DBD-SQLite-1.08.tar.gz ...
Installing C:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.bs
Installing C:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.dll
Installing C:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.exp
Installing C:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.lib
Installing C:¥usr¥html¥site¥lib¥DBD¥SQLite.html
Installing C:¥usr¥site¥lib¥DBD¥SQLite.pm
PPM> quit
1.2 上記がエラーになる場合
使用している Perl のバージョンによって
のいずれかのページを開いて、リストから DBD-SQLite-1.09.zip(5.6.xは1.08が最新の模様)を探し、クリックしてダウンロードします。バージョンは更新適宜されますので、"DBD-SQLite" で検索し、タイムスタンプの新しいバージョンを選ぶと良いでしょう。
ダウンロードしたアーカイブを解凍して DBD-SQLite.ppd があることを確認してください。
次にMS-DOSプロンプトを開き、さきほど解凍した DBD-SQLite.ppd があるフォルダまで移動して、
C:¥> cd DBD-SQLite-1.09_zip
C:¥DBD-SQLite-1.09_zip> ppm install DBD-SQLite.ppd
を実行します。成功すると下記のようなメッセージが表示されます。下記は5.8.xの例です。
====================
Install 'DBD-SQLite' version 1.09 in ActivePerl 5.8.6.811.
====================
Installing D:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.bs
Installing D:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.dll
Installing D:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.exp
Installing D:¥usr¥site¥lib¥auto¥DBD¥SQLite¥SQLite.lib
Installing D:¥usr¥html¥site¥lib¥DBD¥SQLite.html
Files found in blib¥arch: installing files in blib¥lib into architecture dependent library tree
Installing D:¥usr¥site¥lib¥DBD¥SQLite.pm
Successfully installed DBD-SQLite version 1.09 in ActivePerl 5.8.6.811.
メッセージが表示されるまで少し時間がかかるようなので慌てずに待ちましょう。
2.データベースの変換
2.1 Movable Type 新規インストールの場合
任意のエディタで mt-config.cgi(mt-config.cgi-original をリネームまたはコピーしたもの)を開き、
### SQLite Configuration - SQLite requires only the path to your SQLite
# database file.
#
# ObjectDriver DBI::sqlite
# Database /path/to/sqlite/database/file
の部分を設定します。ObjectDriver は行頭の「#」を外します。Database という項目は、行頭の「#」を外し、項目名の後ろに、ルートからの絶対パスでデータベースファイル名までを指定します。
これから設定するデータベースが、
- データベースファイルまでのパス:/hogehoge/MT-3.2/SQLite
- データベースファイル名:mt
である場合、下記のように設定します。
### SQLite Configuration - SQLite requires only the path to your SQLite
# database file.
#
ObjectDriver DBI::sqlite
Database /hogehoge/MT-3.2/SQLite/mt
データベースファイル名は任意の名称で結構です。またデータベースファイルまでのディレクトリは mt.cgi 実行前に予め作成しておいてください。また作成したディレクトリのパーミッションは、CGIスクリプトから書き込めるよう変更(755/777等)をしておきます。
CGIPath および StaticWebPath は説明を割愛しますので適宜設定してください。
これで mt.cgi を実行すればインストールが開始されます。正常に設定されていない場合は mt.cgi 実行後にエラーメッセージが表示されますので、内容を確認して修正・再実行してください。
2.2 Movable Type アップグレード(BerkeleyDB から SQLite へ移行)の場合
ここでは2つの方法を提示します。ひとつは、移行用スクリプト mt-db2sql.cgi を用いた正規の方法です。もうひとつは、mt-db2sql.cgi 実行では500エラーになる可能性があるので、Ogawa::Memoranda さんの mt-db-convert.cgi を利用する方法を紹介します。
個人的には後者の方法をお勧めします。
なお本項(および3項)の作業は、アップグレード前後のどちらの時点でも実施可能です。
2.2.1 mt-db2sql.cgi を使用する場合
任意のエディタで mt-config.cgi(mt-config.cgi-original をリネームまたはコピーしたもの)を開き、移行する前準備のために BerkeleyDB と SQLite の両方のパスを設定します。
- BerkeleyDBのディレクトリ:db
- SQLiteデータベースファイルまでのパス:/hogehoge/MT-3.2/SQLite
- SQLiteデータベースファイル名:mt
とした場合、下記のように設定します。
### SQLite Configuration - SQLite requires only the path to your SQLite
# database file.
#
ObjectDriver DBI::sqlite
Database /hogehoge/MT-3.2/SQLite/mt
#
#
### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
DataSource ./db
SQLite のデータベースファイル名は任意の名称で結構です。またデータベースファイルまでのディレクトリは mt-db2sql.cgi 実行前に予め作成しておいてください。また作成したディレクトリのパーミッションは、CGIスクリプトから書き込めるよう変更(755/777等)をしておきます。
この後、ブラウザより mt-db2sql.cgi を実行します。
この実行について、自宅サーバで500エラーになる場合は下記のリストのように、MS-DOSプロンプトからの実行に変更してみてください。またその際、mt-config.cgi の Database に設定した場所にファイルが生成されていると思われますので、そのファイルを一旦削除することをお忘れなく。
C:¥> cd hogehoge¥MT-3.2
C:¥hogehoge¥MT-3.2> perl mt-db2sql.cgi
Content-Type: text/html
<pre>
Loading database schema...
Loading data...
MT::Author
1
MT::Blog
1
MT::Category
1
2
3
:
(略)
:
MT::Comment
1
2
3
:
(略)
:
MT::Entry
1
2
3
:
(略)
:
MT::IPBanList
MT::Log
実験した限りでは、ここまで表示されたあと応答が返ってこなくなり、しばらくこのまま放置。エクスプローラーを起動して、新しく作られたDBファイル(mt)のタイムスタンプが更新されないことを確認して Ctrl + c で強制終了させました(この後 Movable Type は正常に動作しました)。
移行が完了したら mt-config.cgi の BerkeleyDB の設定箇所を、
### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
# DataSource ./db
と、コメントアウト(行頭に「#」を付与します)して、mt.cgi を実行します。
2.2.2 mt-db-convert.cgi を使用する場合
下記のページより mt-db-convert.zip をダウンロードします。
アーカイブを解凍すると mt-db-convert.cgi がありますので、CGIPath(mt.cgi があるディレクトリ)にアップロードします。ブラウザより mt-config.cgi を起動します。
起動画面で下記の項目をそれぞれ設定します。
- Source DB Configuration
- DataSource:BerkeleyDB のパス(mt.cgi または mt.config.cgi の設定を使って自動的に入力されます。このパスは絶対パスになっていることが推奨事項になっています)
- ObjectDriver:BerkeleyDB
- Destination DB Configuration
- ObjectDriver:SQLite
- DataBase:SQLite のパス(2.1項の Database と同じ内容)
SQLite のデータベースファイル名は任意の名称で結構です。またデータベースファイルまでのディレクトリは mt-db-convert.cgi 実行前に予め作成しておいてください。また作成したディレクトリのパーミッションは、CGIスクリプトから書き込めるよう変更(755/777等)をしておきます。
設定が完了したら画面下の「Convert」をクリックします。次ページで変換結果と mt-config.cgi の設定内容
Done copying data from DBM to DBI::sqlite! All went well.
Your recommended setting
-------------------------------------
# DataSource /hogehoge/MT-3.2/db
ObjectDriver DBI::sqlite
Database /hogehoge/MT-3.2/SQLite/mt
-------------------------------------
が表示されます。設定内容(青色)は mt-config.cgi の
### SQLite Configuration - SQLite requires only the path to your SQLite
# database file.
#
ObjectDriver DBI::sqlite
Database /hogehoge/MT-3.2/SQLite/mt
#
#
### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
# DataSource /hogehoge/MT-3.2/db
の青色部分に該当しますので、それぞれコピー&ペーストします(BerkeleyDB の設定をコメントアウトするのもお忘れなく)。
あとは mt.cgi を実行すればOKです。
下記のエントリーも参考になります。
以上です。
サーバ不具合のお詫び(2005/09/06)
本日未明、当サイトにアクセスできない状態が続いておりました。
原因は、自宅サーバである Windows XP の仮想メモリサイズが1.4GBまで膨らんでしまっており(しばらく再起動もせず、メモリ量も確認しておりませんでした)、これはXPのページ・ファイル・サイズの最大値(物理メモリ(512MB)の3倍)で、大量のスワップが発生していたものと考えられます。
なお、Apache を停止させた途端にメモリ使用量が700MBほど下がりましたので、今後はApacheの再起動を時々行いたいと思います。
現在PCの再起動により正常に表示されることを確認しております。ご迷惑をおかけ致しましたこと、この場をお借りしてお詫び申し上げます。
サーバの不具合
本日午後未明、サーバにアクセスできない状態になっていた模様です(携帯からアクセス不可だったのでそう思ってます)。外出中のため詳細不明ですがただいまアクセス可能です。ご迷惑おかけ致しまして申し訳ございません。
明日は私の所属するマンドリンアンサンブルのコンサートです。集合時間が早いので今日は(多分)早く寝ます。
サーバ停止のお詫び
本日未明(多分3時頃)より21時頃までサーバへのアクセスができない状態が続いておりました。
原因は、Windows Updateの自動更新(自動インストール)を有効な状態にしていたのですが再起動が必要な更新が行われ、再起動がログイン画面で止まってしまっていたためです。
ということでWindows Updateの自動インストールは行わない設定に変更致しました(ある意味危険ですが)。ご迷惑をおかけ致しまして申し訳ございませんでした!!
取り急ぎご連絡まで。
CPU2次キャッシュサイズ変更
自宅サーバのスペックは、CPUがPentium4・2.8GHz(FSB533Hz)でOSがWindows XPです。Pentium4(Northwoodコア)の2次キャッシュは512KBなのでOSがそのサイズを勝手に認識して動作してくれていると思ったら、XPでは初期値として256KBしか認識してくれないことを知りました(この方面の情報収集が遅い…)。
そういう訳で2次キャッシュの値をデフォルトの256KBから512KBに変更しました。参照記事は下記です。簡単に変更できました。
プロセッサナンバの導入で動作周波数が分かりにくくなったようですが、各プロセッサの2次キャッシュは下記より確認できます。欄内の「L2キャッシュサイズ」がそれに該当します。以前で言うところのPrescottコアであれば1MBの2次キャッシュを有しますのでパフォーマンスの向上が期待できるのではないでしょうか。
サーバ不具合
昨晩から先程まで本サイトにアクセスできない状態が続いておりました。申し訳ございません。m(__)m
原因は昨夕サーバ用PCを再起動した際にダイナミックDNSサービスクライアントツール(Dice)を起動していなかったためで、DNSエラーの状態になっていました(私の携帯から見れなくて気がつきました)。
再起動した後、確認せずに(というか自PCではhostsにダイレクトに設定しているので分からない)すぐ出かけてしまい、そのまま出先にいたためどうすることもできず、先程自宅に戻って上記ツールを起動致しました。
結局停止しない予定だったサーバが停止する状態になってしまい、大変ご迷惑をおかけ致しました。
サーバ停止します
本日夜、自宅サーバを都合により一旦停止致します。
本日中に再開する予定ですが最悪の場合月曜まで停止するかもしれませんので予めご容赦ください。
ご迷惑をおかけして申し訳ございませんがよろしくお願い致します。
上記は中止になりました。すいません。
下の文章は相変わらず生きてます(とりあえず20:30頃までの分のコメントはお返しすることができました)。
また只今コメントをお返しする余裕がございません。申し訳ございませんがしばらくお待ちください。
サーバ更改作業まとめ
今回のサーバ更改のまとめです。つまり次回の更改時のためのメモ(笑)。
| 切替前 | 新サーバ | 【インストール】 ・Apache HTTP Server ・Active Perl ・Movable Type(ファイル配置まで) ・Perl DBモジュール ・PHP ・DICE(DDNSサーバへの自動IP通知) |
| 旧サーバ | 【Movable Type】 ・テンプレートメニューよりカスタマイズしたテンプレートをコピー&ペーストでテキストファイルに保存 (個別に作成したテンプレートの出力ファイル名も忘れずに) ・ウェブログの設定→アーカイブの設定よりテンプレートのファイル名保存 ・読み込み/書き出しメニューよりエントリーの書き出し なお3.0Dでは午前・午後の情報が書き出されないことが判明(12時間表示のため投稿が全て夜中?午前中になってしまう)。一時的に作った3.01D-ja環境にDB配下を丸ごとコピーして再書き出したらうまく取得できました。 | |
| 【Movable Type 関連ファイル・ディレクトリコピー】 ・css(Large/Netscape) ・JavaScript(Styleswicther) ・MT4i(index.cgi) ・画像ファイル・ディレクトリ ・検索結果画面テンプレート(search_templates/default.tmpl) ・カレンダー複数表示プラグイン(extlib/bradchoate/calx.pm) | ||
| 切替 | 【ルータ固定IP書き換え】 ルータのWAN側のケーブルを抜き、ブラウザよりルータの旧サーバと新サーバの固定IPを書き替えて保存を試みましたが予想通り設定が反映されずNG。書き換え後リブートや電源再投入してもNG。その後、IP書き替え後にWAN接続して電源再投入したところ一発OK! (本来はバーチャルサーバの設定でIPの割り当てを変えれば良いのですがこちらも購入時の設定でかなり苦労したので作業的にはボツ←一応やってみましたがNGでした)。 | |
| 【切り替え中表示】 新サーバのBlogURLにindex.htmlを作成し「サーバ切り替え中」の情報配信 | ||
| 切替後 | 新サーバ | 【Movable Type】 ・mt-ckech.cgi/mt-load.cgi実施 ・プロフィール変更 ・基本設定変更 ・アーカイブファイルを設定 ・旧サーバから読み出したエントリーをインポート ・デフォルトテンプレートで再構築 index.htmlは工事中ファイルを上書きしないようにindex2.html等に変更 ・テンプレートを順次カスタマイズしたものに入れ替えて再構築 |
| 【MT4i】 mt.cfgのDBパスを絶対パスに修正(blog_IDはそのまま) | ||
| 【DICE】 旧サーバの設定をそのまま書き写す | ||
サーバ更改
大変お待たせ致しました。10日午後20時頃よりサーバを停止しておりましたが、自宅サーバをCerelon・633MHzからPen4・2.8GHzマシンに無事更改致しました。11日午前1時より運用を再開致します。しばらく接続できない状態が続きましたこと、お詫び申し上げます。
これでコメントの登録待ち時間はかなり短くなりました(サクッと感まではいきませんがテストコメントでは20秒ほどで完了)。エントリーの」登録待ち時間も半分くらいになりました。待ち時間でblogに携わるかなり多くの時間を費やしていましたのでこれで少し生活が改善されることを期待しています。
更改時の顛末記は別途筆をとりたいと思います。
自宅サーバ再構築(その2)
本日の作業進捗です。
- PHP5.0.0のインストール
これだけです。自分で書いた内容が間違っていて(PHP関連のモジュールをC:WINDOWS/system32配下に配置しなければならないところを「C:WINDOWS配下に配置」と書いてしまってた…)、Apacheが再起動しなくなりてこずってしまいました。
Apacheと連携させて動作確認までOK。
自宅サーバ再構築(その1)
最近、エントリー投稿やコメント登録、再構築の処理が顕著に重くなってきたのでサーバをCeleron・633MHzから今年初めに購入したPen4・2.8GHzに切り替えることにしました。Celeronを使用していたのは電気代節約のためでWeb閲覧程度なら問題なく動作。blog開始当初もそれなりに動いていたのですが、エントリー数が増えた現状でCGIを走らせると性能の低さが如実に現れてきました。
例えばエントリー登録など3分ほど待たないと表示が元に戻らないという状態で、文章の細かな修正をする度に固まったような画面を眺めながら次の作業をじっと待たなければならず、睡眠時間減少の一因です。精神衛生上もよろしくありません。あ、これはコメント書き込んでくださる方も同様ですね。すいません…。
電気代については運用後計測してどうするか(例えばPentium Mマシン等の導入)検討したいと思います。
ということでまた1から出直しです。現在のサーバ構築で何の作業をやったのか、かなり忘却の彼方です。昨日はとりあえず備忘録(blogとも言う)を見ながら、
- Apache HTTP Server 2.0.50 + コンフィグ設定
- Active Perl 5.6.1
- Perl DBモジュール
- Movable Type 3.01D-ja
のインストールをそれぞれ行いました。localhostからのCGI動作確認までOK。Apacheは2.0.47から最新の2.0.50に。httpd.confの内容は概ね同じでした。
この後、外部からのアクセスを旧マシンから新マシンへ変更しなければならないのですが、一番の問題はそのためのプロ?ドバンドルータの設定がきちんとできるかどうかです。というのは、ルータにCorega BAR Pro3を使ってまして、これがIPアドレスやバーチャルサーバ等の設定を手順通りに行ってもサクッと反映されない(再起動や電源抜き差しを繰り返すと偶然反映される)というかなり厄介ものです。ルータを購入してから現在の設定を完成させるまでに、通常ならものの数分で終わる作業が都合3日くらいかかりました。あと1日要していたら別の機種と取り替えていたでしょう。
という訳で切り替え期間中は突然サーバ停止状態となりますのでご理解の程よろしくお願い致します。
自宅サーバの電気代
6月の電気使用量のお知らせが来ました。5月GW期間中の約10日間はPCの電源を切っていたので、5月と6月の電気代の差額を比較すればどのくらいサーバの電気代がかかっているのか分かりそうです。ということでざっくり計算してみました(数学得意ではないので間違ってたらすいません)。
まず6月分の使用量は28日間検針で182kWh。単純に28で割ると1日の使用量は6.5kWhです。次に5月分の使用量は33日間検針で149kWh、これを先程の6.5kWhで割ると22.9日となります。GW期間中の10日を引いた実質23日分になりますがこれでは5月の残り10日分の電力が0になってしまうので計算は失敗のようです。多分6月からエアコン(除湿)を使い始めたので本当はその分を差し引かないといけないのでしょう。
ということで単純にPCのカタログスペックから計算しました。消費電力は「25w」と書かれており、ここから1ヶ月の電力量を計算すると25w*24時間*30日=約18kWhとなります。つまり6月分の約1/10を消費しているみたいですね。使い過ぎ?(ていうか計算合ってます?)
ちなみに5月と6月分の差額は約700円でした。
blogの再構築時間
blogを始めてからちょこちょこレイアウトやデザインを変更しています。その中で結構時間を費やしているのが「サイトの再構築」。これは要するにデザインやレイアウトを変更した後、その変更をサイトの表示に反映させるためにblogツールで各ページを自動的に作り直すという作業です。作業といっても1回クリックすればあとはパソコンが勝手にやってくれるのですが、トップページ以外に月別・カテゴリー別・特に記事別のページ等を作り直すと記事数に比例して時間がかかってくる、という訳なのです。現状では全体を再構築すると数分待つという感じでしょうか。
早いマシンであればサクサク動いてくれると思います。が、自宅サーバのデスクトップはCeleron・633MHzというロースペックなので正直かなり遅いです。もう1台、Pen4・2.8GHzのPCも持ってますが電気代の問題もあるのでこちらを24時間稼動のサーバとして使う案は今のところボツ。現在使用しているデータベース(DB_File)をMySQLに変更したら改善されるという書き込みもあるみたいなので暇をみてその辺りから調べてみたいと思います。
LANの中からドメイン名で自宅サーバーにアクセス
するためには、Windows2000の場合、
- C:\WINNT\system32\drivers\etc\hosts
に以下の1行を追加すれば良かったんですね。
- 192.168.x.xx ドメイン名
気がつかなかったのはちょっと情けない…。

