痔になりやすい生活習慣とは?

レンタルサーバを借りてサイトを運営しております。
このたび、RSSリーダを作ろうと思い、CPANからXML::RSSモジュールを落としてきました。
いろんなサイトを見まして、標準モジュールではないのでインストールが必要と書いてあり、落胆していましたが、
あるサイトに、
./XML/RSS/というディレクトリを掘ってその中に格納すれば使える
と書いてありましたので、
ローカル(Win32)でXML/RSSと2つフォルダを作り、
そのなかにRSS.pmをいれました。
すると使えません。
で、今度は、XMLというフォルダの中に直接RSS.pmを入れて使うと、
きちんと動きました。
レンタルサーバにFTPでアップすると、
どうしても500エラーが出ます。
いろいろコメントアウトして原因を探ると、
どうもuse XML::RSSでエラーが発生しているみたいなのです。
レンタルサーバはUNIXなので、
文字コードを変えたり、パーミッションを700,755,777,705,etc...と
いろいろ設定しましたが動かず、どうしていいものかわかりません。

CGIやPerlについての知識があまりないのでどうしたらよいのかも全く見当がつきません。
過去の質問も見ましたが見当たりませんでした。
なんとしてもRSSリーダを完成させたいので、
どうぞよろしくお願い申し上げます。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

@INCに含まれるディレクトリに目的のディレクトリがない


ということであれば、

モジュールを use で取り込む前に
use lib '追加したいディレクトリのパス'
を実行すればよいです。
use lib の引数にはリストを取れますが
まあ複数登録したいということもないでしょうからとりあえず。

詳しく知りたければ
perldoc lib
でドキュメントを見てください。

ところで
#2のお礼のところにある
> 同梱のEXAMPLEに入っていたRSS2HTML.PLですら同じエラーが出ます。
> "encode_eniaties_numeric is not >exported by the HTML:Entities module at XML/RSS.pm line 5"
> これは何を意味するのでしょうか。

HTML::Entities というモジュールのバージョンアップの必要があるとか?
    • good
    • 0
この回答へのお礼

パスを追加したいのですが、
ルートディレクトリからだと思うのでわからないのです。
Perlスクリプトの正確な位置を返す変数かなにかありますでしょうか。
$ENV{'SCRIPT_NAME'}だと不完全で。

お礼日時:2007/07/09 18:48

念のために最新のXML::RSS(1.31)は以下のすべてのファイルの設置が必要です


./XML/RSS.pm
./XML/RSS/Private/Output/Base.pm
./XML/RSS/Private/Output/Roles/ImageDims.pm
./XML/RSS/Private/Output/Roles/ModulesElems.pm
./XML/RSS/Private/Output/V0_91.pm
./XML/RSS/Private/Output/V0_9.pm
./XML/RSS/Private/Output/V1_0.pm
./XML/RSS/Private/Output/V2_0.pm

XML-RSS-1.21 の古いバージョンだと
./XML/RSS.pm
の設置だけでも何とかなるかもしれません。

それでも駄目な時は、さらに古い 0.96 ではどうでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます。
バージョンが1.02だったので、1.31の最新版をDLしてきました。
ローカルでも全く動かなくなりました。
同梱のEXAMPLEに入っていたRSS2HTML.PLですら同じエラーが出ます。
"encode_eniaties_numeric is not exported by the HTML:Entities module at XML/RSS.pm line 5"
これは何を意味するのでしょうか。

お礼日時:2007/07/09 16:36

なんで500エラーになっているか調べられないのですか?


httpdのログを見るとか。

多分置いた場所と @INC に格納されている情報のつじつまが合っていないんじゃ
ないかと思いますけど。

ログを見ることができないのなら、
CGI::Carpを使って、エラーメッセージをブラウザで見られるように
するとよいでしょう。

use CGI::Carp qw(fatalsToBrowser);

少なくともあてずっぽうにあれこれやらないですみます。
原因がつかめたらこの行はコメントアウトしときましょう。
    • good
    • 0
この回答へのお礼

レンタルサーバなのでログは見られないのです。
教えていただいた方法で見たところ、
@INCの問題でした。
その後どうしたらいいかわかりません。
教えていただけないでしょうか。

お礼日時:2007/07/09 16:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング