ホスティングを使用しています。
plファイルについて、以前のサーバはちゃんと動作していましたが、
新しいサーバで、jcode.plが読み込めないらしくInternal Server Errorが出てしまっています。
階層は
httpdocs--test.pl
|--cmn--jcode.pl
にしています。
ログを見ると
[error] Can't locate cmn/jcode.pl in @INC
17行目部分、つまりrequire 'cmn/jcode.pl';があるところがエラーになってます。
以前は読み込めているのに、新しいサーバでは読み込めていない。
ちなみに
・パーミッションはちゃんと変更していますtext.pl[755]
・httpdocs自体は.htaccessでpl自体は動作できています
つまり、 require行を外すとページはきちんと表示されます。
となると考えられる原因はなんでしょうか?
そして対策方法を教えて頂ければと思います。
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
本体のスクリプトのファイル名が main.cgi だとしてそこと同じ
ディレクトリに index.cgi というファイル名で以下のような
スクリプトを書いてください。
#!/usr/bin/perl
# ↑Perl のディレクトリ
# wrapper
use strict;
use CGI::Carp qw(fatalsToBrowser);
use File::Spec;
use File::Basename;
use Cwd;
# カレントディレクトリの設定
my $fn = File::Spec->rel2abs(__FILE__);
$fn =~ s/\\/\//g;
my ($dir) = (fileparse($fn))[1];
chdir $dir if(getcwd() ne $dir);
# main.cgi を読み込む
require './main.cgi';
exit;
そして、すべてのリクエストを index.cgi に対して行うように
するとスクリプトのあるディレクトリがカレントディレクトリになり
ます。
ただし、すべての環境で動作するかどうかは分かりません。
No.2
- 回答日時:
調べればわかるんだけど, @INC は「require や use するファイルを探すディレクトリ」のリストです. この場合,
require 'cmn/jcode.pl';
を実行すると
/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/cmn/jcode.pl,
/usr/lib/perl5/5.8.5/cmn/jcode.pl,...
を順に探し, 一番最初に見つかったファイルを読み込みます. そして, そのようなファイルが見つからなければ
Can't locate cmn/jcode.pl in @INC
というエラーになります.
なお, @INC の中の「.」は「スクリプトのあるディレクトリ」ではなく「スクリプトを実行するときのディレクトリ」です. だから, これは「スクリプトのあるディレクトリ」を指すとは限りません. 念のため.
この回答への補足
それで具体的にどうすればいいのかな
#!/usr/bin/perlパスはついているし
その下に
#!/usr/lib/perl5/5.8.5/
とかパスを書き足しても解決できないのですが
No.1
- 回答日時:
「考えられる原因」も何も, エラーメッセージがすべてだと思う.
@INC の値はどうなってますか?
この回答への補足
(@INC contains:
/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.5
/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi
/usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-multi
/usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-multi
/usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-multi
/usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-multi
/usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.3
/usr/lib/perl5/site_perl/5.8.2
/usr/lib/perl5/site_perl/5.8.1
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.3
/usr/lib/perl5/vendor_perl/5.8.2
/usr/lib/perl5/vendor_perl/5.8.1
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl
. /etc/httpd/
/etc/httpd/lib/perl)
実は@INCというのが何のことなのかもよくわかりません。
これで何が分かるのでしょうか?
追記
上の階層がずれていましたがcmnは
httpdocs/cmn/jcode.plです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Can't locate jcode.pl in @INC...
Perl
-
jcode.pl → jacode.pl
その他(コンピューター・テクノロジー)
-
CGIでjcode.plを読み込めなくなりました
CGI
-
-
4
apacheでPerl CGIが作動せず、500エラーが出ます。
CGI
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xamppでcgiが動かない
-
require文が実行できない
-
セッションファイルが作成でき...
-
携帯用のページに perl で post
-
cgiとplとpm
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
[Excel] ある日の曜日が当月の"...
-
ディレクトリパスの取得について
-
エクセルで相対パスの書き方を...
-
ユーザー定義の(aaa)
-
よくある 『 第○(1・2・3・4・...
-
曜日のなぞ
-
Excel VBA 第〇△曜日の場合休日...
-
LinuxでRTPヘッダを作りたいの...
-
毎○曜日って、使いますか?
-
アンケートなどの1日1回の投...
-
関数ヘッダ?
-
VBAでExcelのヘッダーに文字列+...
-
HTMLでASPを動かしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
jcode.plが読み込めない
-
htmlからテキストを返すperlを...
-
Location: で cgi → c...
-
セッションファイルが作成でき...
-
Locationでターゲット指定はで...
-
Perlソースを2つのファイルに分...
-
Quantifier follows nothing in...
-
require文が実行できない
-
use CGI
-
コマンドラインでGET or POSTで...
-
htmlファイルへのcgiの組み込み...
-
www.URL 付のcgi を動かす
-
ファイル書込時にPermission de...
-
xamppでcgiが動かない
-
perlのrequireの動き方について...
-
mt-check.cgiでForbiddenエラー...
-
webからroot権限のコマンドを実...
-
QUERY_STRING が、SSIを使用す...
-
Perlccを使ったCGIプログラムの...
おすすめ情報