ZAPAnet総合情報局 > ZAPAブログ2.0 > PHPで動いている高度なオープンソースWebアプリレビュー

PHPで動いている高度なオープンソースWebアプリレビュー

2007年05月06日 プログラミングTIPS
PHPで動いている高度なオープンソースWebアプリケーション厳選15本まとめ」に載っていたオープンソースWebアプリケーションの中で、ZAPAnet総合情報局でもいくつか設置中のものがあります。
こういったオープンソースWebアプリケーションは、実際に設置&運営をしてみないと見えてこない部分があります。
例えば、
1.インストールの難しさ
2.設定の難しさ
3.負荷の高さ
4.カスタマイズのしやすさ
5.バージョンアップ・セキュリティバグ対策
などは、実際に設置&運営してみないとわかりません。
いくら機能が良くても、インストールが難しかったり、負荷が高すぎたり、バグだらけだったりすると使い物になりません。

そういうわけで、実際にPHPで動いている高度なオープンソースWebアプリケーションを使ってみての感想などを含めてレビューしておきます。

1.Nucleus
2.OpenPNE
3.PukiWiki
4.phpBB
PHPの動作を速くするために


1.Nucleus


オープンソースのCMS、ブログソフトとして定評のある「Nucleus」。
今読んでいるこのブログで使っています。

☆設置サイト☆
[Z]ZAPAブロ~グ2.0
ゲーマーSNS公式ブログ

☆特徴☆
Nucleusの特徴は、CMSとしてのプログラム自体はシンプルに低機能に抑えていて、その他の機能は全てプラグインで導入することになっているところです。
初期設定ではトラックバックプラグインさえ入っていません。
その分、外部に豊富なプラグインが用意されています。
プラグインをインストールすることで、各種用途にもカスタマイズでき、企業用のCMSとしても利用されています。
標準で複数ブログ設置機能などが付いているため、一度インストールするだけで複数ブログの設置も簡単にできます。

☆注意点☆
注意しなくてはいけないところは、プラグインをいろいろ導入していると、いつの間にか負荷が高くなっていくことです。
プラグインの信頼性、負荷対策などは各プラグイン作者に委ねられているため、便利だからと言って何でもかんでもインストールしていると大変なことになります。
プラグインバージョンアップなどによる、セキュリティ・バグ対策にも気をつけないといけません。

☆カスタマイズ☆
このブログでは、
Nucleusを半分やめて、100倍速を実現しました!
に書いたように、Nucleusを改造して100倍早く動くようにカスタマイズしています。

☆解説書☆
先月、Nucleusの解説書が発売されました。
Nucleusでつくる!
最強のブログサイト

Nucleus CMS
オススメ度:☆☆☆
コメント:複数ブログ設置機能、豊富なプラグインでいろいろとカスタマイズできる。その反面、プラグイン探しやバージョンアップ管理などが面倒。


2.OpenPNE


オープンソースのSNSソフトとして有名な「OpenPNE」。
ゲーマーSNS」で、設置&運営しています。

☆設置サイト☆
ゲーマーSNS

☆特徴☆
OpenPNEの特徴は、無料でmixiとほとんど同じ機能を持つサイトが作れるところです。
SNSの基本機能は全て備え、バージョンアップによりOpenPNE独自の機能も追加されています。

☆注意点☆
まず第一に、「インストール」でつまずく人が続出しています。
インストールのためのドキュメントは用意されていますが、MySQLの文字コード問題、メールサーバーの設定、cronの設定知識などが要求されます。
その次に、「負荷の高さ」で悩みます。
DBを駆使するため、人数が増えてくるとあっという間に重くなります。
また、画像アップロードによる「容量」的な問題や、管理者としての「運営・管理」能力も要求され、頻繁に行われる「OpenPNEのバージョンアップ」にも付いていかないといけません。
はっきり言って、OpenPNEが元になっている「So-net SNS」をレンタルした方がはるかに簡単にSNSを始められます。

☆カスタマイズ☆
mixiを模倣しているため、OpenPNEもtableタグデザインになっています。
残念ながら、最近のCMSツールなどのように、「CSSで簡単にデザイン変更」というわけにはいきません。
フレームワークベースで作られているため、ページごとにsmarty用テンプレートファイルが存在し、それらが100ファイル以上あるので管理も大変です。
一度オリジナルデザインに変更すると、バージョンアップ時のマージ作業負担も増えてしまいます。
OpenPNEの安定度にも難があり、OpenPNE2.2系、2.4系、2.6系などの偶数版が安定版となって開発されていますが、OpenPNEを利用している人の意見は少し古いOpenPNE2.4系が一番安定していると言っています。(最新版は、現在2.8系のbetaテスト中)
負荷対策も難しく、人数が増えてくるとサーバー台数も必要になってきます。
設置ができてもSNSとして会員数を増やすことが難しく、人数が増えると負荷に耐えられないというもどかしさが同居したプログラムと言えます。
mixiでさえ最初は赤字運営だったことを考えると、SNSの運営はなかなか難しいのかもしれません。

と、自分は思ったりしてしまうのですが、中には「モンスターハンターSNS モンハンネット」がモンハンネットがファミ通に紹介されたりネトラジ開始したりもしているので、うまく人数を集められ運営もできるのなら、自己設置も良いのかもしれません。

☆解説書☆
OpenPNEの解説書は、すでに3冊も発売されています。
OpenPNEではじめる
自作SNS入門
OpenPNEでつくる!
最強のSNSサイト
OpenPNEによるSNSサイトの構築
オープンソース徹底活用
OpenPNE
オススメ度:☆☆
コメント:無料でmixiみたいなサイトが作れるすごいプログラム。管理・運営は大変なので、レンタルサイトで十分かもしれない…。


3.PukiWiki


オープンソースのWikiソフトとして、日本で一番人気の「PukiWiki」。
ZAPAnet総合情報局でも、10コンテンツ以上設置しています。

☆設置サイト☆
アルトネリコ攻略Wiki
VP2攻略Wiki
グランファンタズム攻略Wiki
聖剣伝説攻略Wiki
DQMJ攻略Wiki
ドラクエソード攻略Wiki
ドラゴンクエスト9攻略Wiki
FF12攻略Wiki
風来のシレンDS攻略Wiki
ポケットモンスター攻略Wiki
マザー3攻略Wiki
リーズのアトリエ攻略Wiki
レイトン教授攻略Wiki

☆特徴☆
PukiWikiの特徴は、PHPさえ動けば簡単に設置ができるところで、日本語用のプラグインもたくさんあります。
DBなどを必要としないため、設置も管理も簡単と言えます。
標準でケータイ用のスキンも用意されているため、ケータイサイトとしても使えます。

☆注意点☆
PukiWiki用のプラグインを探そうと思った場合、公式サイトが重いため探すのがけっこう大変です。
また、初期状態では負荷対策が十分とは言えないため、まずは設定ファイルとスキンテンプレートのカスタマイズをする必要があります。
管理者として、荒らし対策、スパム対策なども要求されます。

☆カスタマイズ☆
まずは設定ファイルのカスタマイズ。
pukiwiki.ini.phpをいじるだけでもかなり軽くなります。
特にAutoLink機能は負荷が高いので、使うか使わないかは最初に決めておいた方が良いと思います。
それからスキンテンプレートのカスタマイズ。
標準のテンプレートはアイコンが多数設置されているため転送量が多く、テンプレートはカスタマイズするのが基本です。

現在設置中のwikiサイトでも数々のカスタマイズを繰り返し、負荷をかなり減らしましたが、それでも今年の1月にはload averageが100を越えてしまいました。
pukiwikiは、アクセスの度にwiki構文のファイルを動的にHTMLに変換しているため、ページ数が増えてくると、とてつもなく重くなります。
500ページ、1000ページを越えてくると、ディレクトリ関連の処理だけでもかなり負荷が高まります。
この部分の処理をカスタマイズしたところ、load averageが100から→1になりました。
現在では、負荷の心配もなく運営できています。

☆解説書☆
pukiwikiの解説書も発売されていますが、別に読まなくて設置できると思います。
PukiWiki入門
まとめサイトをつくろう!
オープンソース徹底活用
PukiWikiによるWebコラボレーション入門


PukiWiki
オススメ度:☆☆☆☆
コメント:手軽にWikiサイトを設置できる便利なプログラム。負荷が高めで、管理者の管理能力も要求される。


4.phpBB


オープンソースの掲示板プログラムとして、海外で人気のある「phpBB」。
2年以上前に、[Z]ZAPAnetコミュニティを設置してみましたが…近いうちに撤去予定です。

☆設置サイト☆
[Z]ZAPAnetコミュニティ

☆特徴☆
PHPとデータベースを利用した掲示板で、テンプレートファイルとMODでいろいろカスタマイズできます。
会員制の掲示板の設置が簡単にできます。

☆注意点☆
日本人には合わないスキンなどが多く、日本のサイトだけでは情報が不足しがちです。
海外で人気があるため、海外のハッカーにも狙われやすいプログラムです。
また、会員制の掲示板にしてしまうと、敷居が高くなってしまうため、書き込み数が増えにくくなってしまう問題もあります。

☆カスタマイズ☆
phpBBの簡単な設置方法と比較して、カスタマイズはやや難しくなっています。
参考:PHPBB設置メモphpBBカスタマイズメモ

☆解説書☆
PHPBB専用の解説書はないようです。

オススメ度:☆☆
コメント:PHPとDBで会員制の掲示板が簡単に設置できるプログラム。あまり日本人向けでないところが欠点。


PHPの動作を速くするために

以上、PHPで動いている高度なオープンソースWebアプリケーションを使ってみた感想などを含めてレビューしてきました。
PHPで動いている以上、PHPの動作自体を速くすると、全てのWebアプリケーション動作が快適になります。
動作速度を上げるために、PHPは「mod_php」で動かし、「PHP用アクセラレータ」を導入すると驚くほど動作速度が上がります。
「PHP用アクセラレータ」については、以下の記事を参考にしてください。
XCacheのインストールとphp用アクセラレータ比較
Zend Optimizerインストールメモ

phpプログラムは、perlプログラムに比べて日本製Webアプリケーションはあまり多くありませんが、商用でも利用できるような高機能なものも多く公開されています。
気になるプログラムがあれば、まずはインストールして、実際の動作を自分の手で確認してみることが大切なことです。

関連リンク

実際に買って読んだPHPの参考書レビュー
PDO、PEAR::DB、MySQL関数の速度比較
PHP5.2.1リリース
Zend Optimizerインストールメモ
BufferedLogs On
XCacheのインストールとphp用アクセラレータ比較
PHP5.2.0とeAcceleratorのインストールメモ
PEARのアップグレードメモ
PHP Accelerator インストールメモ
phpMyAdmin設置メモ