ページの作成や編集にはユーザ登録が必要です。
Apace2+Perl5.8環境のサーバーで動かしたい - ZON (2004年03月17日 12時44分40秒)
3.5.2からのユーザーですが、レンタルサーバーでの個人利用(Apache1.3x + Perl5.6.1)と職場LAN内部での文書処理利用(VineLinux2.6r4 + Apache1.3x + Perl5.6.x)で大変有用に活用させていただいております。
(ログイン機能などの)評価も高く、今度公開サーバーでFSwiki3.5.2を稼働させようと設置したのですが、エラーメッセージの内容が情報の少ない以下のタイプなので行き詰まっております。
Premature end of script headers: wiki.cgi Error 500
別のscriptを使って調べた範囲ではこのサーバーの環境は次のようです。
Apache/2.0.40 (Red Hat Linux) ※ RedHatのバージョンは不明 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/B.pm : 1.01 (...以下続く) ※Perl5.8.0と思われる
※次の点は確認しました。
- ファイル頭の「#!/usr/bin/perl」はサーバー指定のものになっているか……ok(動くscriptで確認)
- 行末改行は正しいか……ok(全てLFであることを確認)
- サーバーが文字エンコードを正しく扱えるか……ok(EUCコードのscriptが動作することを確認)
- 各ファイルのパーミッションは正しいか……ok(稼働しているFSwikiにならって設定)
- cgiのディレクトリは読みにいけるか……一覧表示はできないものの、ファイルが存在すれば表示される
- ※例 http :// URI /設置ディレクトリ/lib/Wiki.pm とすればファイルの内容が表示される
- 設置したものは配布物からperlのパスなど初期設定を加えただけのものです。
エラーログを取り寄せられないかと連絡していますが、いずれにせよ情報が少なすぎるので次の追試を行いました。ヒントか取っ掛かりが見つかるだけでもうれしいのですが。
- インストールされているモジュール名などを調査するscript(jisで記述)を同じディレクトリに設置……動く。パス等の情報も取得できる
- YYbbs(Kent氏配布、Jcode.plを使うタイプ)をEUC-JPに変換して設置……動く。ログも正常に書き込まれる
- (追記)FS wiki Lite0.0.9を設置してみる……動作する。
他に何か試験すべきポイントがあるでしょうか。何か見落としているような気もするのですが……
感触としてPerl5.8標準ののモジュール周りとの不具合を疑っているのですが、原因を特定できていないのでなんともいえません。環境変数を取得するスクリプトの結果が必要でしたら(実アドレスとかは伏せさせてください)添付できると思います。添付しました。
ファイル名get_env2.txt(948)※「*」の入っている部分は伏せています
※問題解決しました
何とか突破口を見つけて解決しました。「Perl5.6 Perl5.8」をキーワードにかなりGoogle廻りをした結果、「(Redhatの?)Perl5.8にはCGI.pmが含まれていない」という旨の日記や覚え書きにたどり着きました。(どうもパッケージを追加選択しないと入らないらしいです???)
このサーバーのエラーログは結局取り寄せられなかったのですが、試しに存在しないモジュールをuseするスクリプトを走らせたところ、同様の500エラーを出すことが確認できました。全部は必要ないのかも知れませんが、依存関係があるかも知れないと思ったのでCPANからCGI.pmモジュール(最新3.04)を手にいれ、./lib以下と ./lib/CGIディレクトリに追加する形でモジュールを加えて、ついでにCGI2.pmの文末に「1;」が見つからなかったので加えて、最後にwiki.cgiに「use CGI ;」を明示したところ、何事もなかったかのように作動しました。
解決してみれば簡単なことだったのですが、情報を見つけられなかったら行き詰まったままだったかもしれないです。お騒がせしました。
最終更新時間:2007年06月05日 18時37分13秒