Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  wikifarm  Admin

Perlでウィキを作る

PerlでWikiを作る

 PerlでWikiを作るべく、オープンソースをいろいろ探したが、Wikiのソースは我々には難解で、作業半ばでPerlでの製作は無理だと判断されたため、断念した。

 特につまづいた部分を列挙していく。

  • Apacheの設定が文献によって異なり、違うプログラムはApacheの設定を併記していない限り、ほとんどの場合動かすことができなかった。
  • DATファイルを用意せずにログを取る手法が理解できなかった。
  • 掲示板の編集機能を改造してwikiに変えようとしたが、編集機能の中の過去ログを取り出す手法のソースコードが理解できなかった。
  • ごく簡単なYukiWikiminiというWikiに先述のBBSを合体させようと試みたのだが、Apacheの設定やファイルの配置がかみ合わず、InternalServerErrorがどうしても消せなかった。
  • 高度な機能を持つBBSのオープンソース同士を合体させてWikiに似た機能を持たせようとしたが、これもApacheの設定やファイルの配置がかみ合わず、InternalServerErrorが消せなかった。
  • 全くオリジナルでプログラムを書いてみたが、高度な機能になるとアルゴリズムが思いつかず、断念した。全くのオリジナルではBBSを作ることすら用意ではないという現状であった。

 このような理由で、PerlでオリジナルのWikiを製作するということは我々には高度すぎるということが判明した。

 以下、エラーについての解説を補足しておく。

InternalServerErrorについて

サーバ側の内部エラーのこと。エラー番号は500。主に、.htaccessの設定が誤っていたり、cgiスクリプトの記述が正しくないために、クライアント側からの要求を完了できなかった場合、サーバからこのエラーが返される。サーバに負荷がかかりすぎて、クライアント側からの要求を規定時間内に完了できなかった場合にも、このエラーが返される。

(はてなダイアリーより引用)

 この中のエラーの原因では、CGIスクリプトの記述が正しくない場合が圧倒的に多い。また、プロバイダとの問題や、Apacheの設定が原因のこともある。そしてこのエラーの最大の厄介さは、エラーの原因について何も情報が表示されないことである。

htaccessについて

Apacheで使用される、ディレクトリ単位でWebサーバの動作を制御するために置かれるファイルのこと。Apacheの設定ファイルhttpd.confでも同様の制御を行うことが可能だが、レンタルサーバ等ではこの大元の設定ファイルをユーザに触らせることができないため、.htaccessを利用するように促される。具体的に制御できる動作は、CGIやSSIなどを実行するための宣言(命令)・拡張子ごとにファイルタイプを指定するMIMEタイプの設定・ユーザ認証・IPアドレスやドメイン単位でのアクセス制限・エラードキュメントの指定・ページのリダイレクトなど。

(はてなダイアリーより引用)

 このファイルはhttpd.confで代用できるため、実際これが原因でエラーの場合はApacheの設定がまずいということになる。

Apacheのエラーログについて

 ApacheのReview Server Log Filesという項目からアクセスログとエラーログを見ることができる。これによって、InternalServerErrorの原因が分かることもある。また、このエラーログで出てくるプログラム中のエラーメッセージはほぼActivePerlが出すエラーメッセージと同じものである。これにより、ActivePerlは絶対必要なツールではないといえる。一応なくともデバッグはできるが、ApacheのエラーログでデバッグするとActivePerlよりもエラーの閲覧までにかなり手間がかかるためActivePerlはあったほうが絶対によい。

Wikiプログラミング断念の代わりに

 Wikiのプログラミングを断念してしまったため、本稿の中身が薄くなってしまった件は大変無念である。何とか穴埋めするべく、我々はWikiの無料レンタルサービスの運用に的を切り替え、そこでWikiの使い方や管理の仕方などの解説を行い、また、運用面でいろいろ考察を加えて、Wikiのシステムを把握し、論理的な形で新しい用途を考案できないかと試みた。

Last modified:2006/01/05 00:47:45
Keyword(s):
References: