WindowsマシンでOpenPNEを動かす

今さらですが、WindowsマシンでOpenPNEにチャレンジです。

我が家のデスクトップPCは、2002年春に自作したものを頑張って使い続けていて、これまでのPC利用暦で最長不倒距離を更新中。

マザーボードは当時流行のASUSのCUSL2シリーズ廉価版(チップセットはi815E)。CPUはP3の1GHz、メモリが512MBまでしか搭載できないシロモノに、これまた当時は標準的だったGeForce2の400MX(32MB)を積んで、ずっとWindows 2000 Proで使ってきました。

以来、、PCMCIAカードやUSB2.0 & IEEE1394カード、ギガビットイーサ、DVD-RAMなどを増設してきましたが、昨年来のSOHOサーバーやインターネット接続環境の整備などで、ここに来て資金ショート(笑)。当面、新たなハード投資ができなくて、とてもじゃないけどWindows Vistaへの乗り換えは先送りせざるをえない状況です。

そうは言っても、ある程度は標準的なデスクトップ環境を持っていないと、Webサイトの確認作業などができないこともあって、今回、改めてWindows XP Pro SP2のOEM版をHDDとセットで買い、なんと五年ぶりのOSアップグレードなのであります。Officeは2000のままですが。。。

ちなみに、ブラウザはIE7とFirefoxの両方、メーラーはLinuxで慣れ親しんだお気に入りのSylpheed。もちろん、各種Linux OSのテスト環境として、マイクロソフトのVirtual PCも必須です。

それはさておき、本題へ。

WindowsマシンでOpenPNEを動かすということは、要するにWindows XPマシンのサーバー化計画ということなわけですが、基本ポリシーは次のとおりです。

◆とにかくOSは軽い方がいい
メモリが512MBなので、OSはできるだけ軽い方がいいですね。なので、極力余計なものはインストールしないで我慢します。

◆標準に心がけたプラットフォームの構築
要するに「XAMPP」みたいな標準的環境を丁寧に手づくりします。もちろんIISは使いません。

◆もしもの場合のバックアップマシン
万が一、SOHOサーバーがダウンした場合のバックアップマシンとしても耐えうるよう、徹底的に仕込みを入れます。めざせイベントビューアのエラーゼロ。

サーバー構築のハウツーものは諸先輩方のページがたくさんあるので、ポイントだけかいつまんで記します。

■最低限必要なサーバーツール類(カッコ内のバージョンはインストール時点)

  • ActivePerl(5.8.8 Build 820)
  • MySQL(5.0.41)
  • php(5.2.3)
  • Apache HTTP Server(2.2.4)

■あると便利なサーバーツール類

  • phpMyAdmin(2.10.1)
  • WarFTPd(1.82)
  • VNC Server(4.1.2)
  • ntpd(4.1.0)※独自コンパイル
  • XMail(1.24)※動作確認はまだこから

PerlとMySQLのインストールは特に何も変わったことはしません。MySQLのインストールオプションはややこしそうですが、どっちみち後でC:\Program Files\MySQL\MySQL Server 5.0\my.iniをいろいろチューニングする必要がありますし。

それから、OpenPNEにはPEARがインクルードファイルとしてパッケージされているので、気にしなくてかまいません。

Windowsの場合に気をつける点は、php5とapache2のライブラリ設定です。

■php5のライブラリ設定
Linuxではphp5をインストールする時点で使用するライブラリを選択するだけで、後で設定ファイルをいじることはありませんが、Windowsの場合は読み込むライブラリを設定ファイルにいちいち明示的に指定しなければなりません。私の場合は以下のライブラリを読み込んでいます。
※phpはC:\phpにインストール(C:\php\php.ini)
※システム環境変数PathにC:\phpとC:\php\extが追加されているとして

#C:\\php\\php.ini
extension_dir = "C:\\php\\ext"
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mime_magic.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll

■php5とapache2の連携設定
apache2(ここでは2.2.x系)は標準ではphp5との連携ができません。apache2が吐き出すエラーログ(C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log)を見ながら、細かい動作確認を進めます。

#C:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\httpd.conf
#ライブラリC:\\php\\libmysql.dllのみC:\\WINDOWSにコピーしなければならない
#でも、それではファイル管理がややこしくなるので
#次のようにapache2側でLoadFileで明示的に記述する方がスマート
LoadFile "C:/php/libmysql.dll"
#php5とapache2連携モジュールの組み込み
LoadModule php5_module "C:/php/php5apache2_2.dll"
#php.iniファイルの指定
PHPIniDir "C:/php"
#phpファイルの関連付け
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

その他はだいたいLinuxと同様の設定で、無事にOpenPNEがめでたく動きました。

携帯からのメール投稿などのメールサーバー連携、cronの代わりにスケジュールタスクを使ったバッチ類(OpenPNEの定時バッチやapache2のログローテーション)など、さらに細かなチューニングは、これからの仕込みです。

SNSで構築するNPO事務局機能

現在、株式会社手嶋屋さんのオープンソースOpenPNEを使ったSNSの試験運用をさせていただいていますが、メンバーの日記やメッセージングによる日常的コミュニケーション、コミュのトピック上での議論、イベント開催通知による確実な出欠確認など、SNSの基本的な機能を活用することで、NPOの事務局機能の大きな助けになるんだなと、最近、改めて思うようになりました。

OpenPNEで立ち上げた地域SNS
※OpenPNEで立ち上げた地域SNS

SNS内の情報を安全に外部に発信することは、様々な取り組みが行われていますが、私自身は、今はそこは切り分けたほうがいいかなと考えています。

一方、近々、ブログツールのMovable Typeがバージョン4がリリースされるようで、企業やコミュニティでの使い勝手が増すとのことですが、さてさて、どんなことになるでしょう。楽しみです。