記事No | : 15414 |
投稿日 | : 2017/02/26(Sun) 00:37:31 |
タイトル | : WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hei01101 |
投稿者 | : kayou |
URL | : http://www.kayou.mydns.jp:801/perl/pcheck.cgi |
KENTさんの WEB FORUM について、
CUIにて perl /xxx/xxx/wforum.cgi タイピングすると、
Software error:
「Can't locate CGI/Minimal.pm in @INC-----」のメッセージで、cgiがうまく動かないです。
13行目 use CGI::Minimal; のところでエラーになってるみたいです。
設置:パーミッション等は、解凍分をディレクトリ構成とファイル位置の設置例の通りにしているのですが---。
wforum.cgi
admin.cgi
captcha.cgi
regist.cgi
以上 4点が Minimal.pmのエラーになり、
check.cgiについては、
Software error:
「Can't locate ./init.cgi in @INC---」のエラーメッセージとなるのですが---。
(外部ファイルの取込みエラー?。)
IISでは無事に動いているのですが、linux(Centos)では動かないのは、perl設定に問題があるのでしょうか?
記事No | : 15415 |
投稿日 | : 2017/02/26(Sun) 15:55:46 |
タイトル | : Re: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hirayama |
投稿者 | : hirayama |
まず
./lib/CGIにMinimal.pmが存在するか確認してください。
check.cgiのエラーの方は
Can't locate ./init.cgi in @INC---
wforumディレクトリにちゃんとinit.cgiがあるなら、
カレントディレクトリにパスが通っていないか、wforumがカレントディレクトリに
なっていないということかもしれません。
use CGI::Carp qw(fatalsToBrowser);
の下に
use Cwd;
open(TST,">./test.txt");
print TST "カレントディレクトリ=" . Cwd::getcwd() . "\n";
print TST "@INC=" . join('<>',@INC) . "\n";
close(TST);
を追記してcheck.cgiを実行し、作成されたtest.txtで
カレントディレクトリがwforumになっているか、
@INCにカレントディレクトリが含まれているか確認してください。
「.」がカレントディレクトリです。
テストが終わったら変更部分はもとに戻してください。
記事No | : 15416 |
投稿日 | : 2017/02/27(Mon) 08:18:53 |
タイトル | : Re^2: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hei01101 |
投稿者 | : kayou |
> まず
> ./lib/CGIにMinimal.pmが存在するか確認してください。
>
> check.cgiのエラーの方は
> Can't locate ./init.cgi in @INC---
> wforumディレクトリにちゃんとinit.cgiがあるなら、
> カレントディレクトリにパスが通っていないか、wforumがカレントディレクトリに
> なっていないということかもしれません。
ありがとうございます
確かに wforumがカレントディレクトリになっていませんでした。
カレントディレクトリが / の表示です。(test.cgiにて)
エラーの原因は これだったんでしょうね。
"httpd.conf"または"perl.conf"の設定修正で可能なのでしょうか?
linuxは初めてなので・・
記事No | : 15417 |
投稿日 | : 2017/02/27(Mon) 11:58:17 |
タイトル | : Re^3: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hirayama |
投稿者 | : hirayama |
> "httpd.conf"または"perl.conf"の設定修正で可能なのでしょうか?
> linuxは初めてなので・・
サーバーの設定などに関してはサポート外なので、CGIでの対応のみ書きます。
> 確かに wforumがカレントディレクトリになっていませんでした。
とるすると<No.15170>と同じ現象ですね。
カレントディレクトリをwforumにするのは
if($0 =~ /^(.*[\\\/])/) {chdir($1);}
ですが、コンパイル時に実行されるuseより先に実行するために
BEGIN {
if($0 =~ /^(.*[\\\/])/) {chdir($1);}
}
をuseより前の行に追加するといいと思います。
記事No | : 15418 |
投稿日 | : 2017/02/27(Mon) 23:34:29 |
タイトル | : Re^4: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hei01101 |
投稿者 | : kayou |
hirayamaさんいろいろとお世話になります
1)cd $ perl ./check.cgi すると下記の表示で文字化け?になります。
尚、webでは、500 Internal Server Errorです。
日本語表示できないのでしょうか?
Content-type: text/html; charset=shift_jis
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<title>Check Mode</title>
</head>
<body>
<b>Check Mode: [ Web Forum v7.11 ]</b>
<ul>
<li>�Z�b�V�����t�@�C���p�X : OK
<li>�Z�b�V�����t�@�C���p�[�~�b�V���� : NG
<li>���O�t�@�C���p�X : OK
<li>���O�t�@�C���p�[�~�b�V���� : NG
<li>�ߋ��O�F�ݒ肠��
<li>�ߋ��ONO�t�@�C���p�X : OK
<li>�ߋ��ONO�t�@�C���p�[�~�b�V���� : NG
<li>�ߋ��O�f�B���N�g���p�X : OK
<li>�ߋ��O�f�B���N�g���p�[�~�b�V���� : NG
<li>�摜�f�B���N�g���p�X : OK
<li>�摜�f�B���N�g���p�[�~�b�V���� : NG
<li>sendmail�p�X : NG
<li>�e���v���[�g( conf.html ) : OK
<li>�e���v���[�g( edit.html ) : OK
<li>�e���v���[�g( error.html ) : OK
<li>�e���v���[�g( find.html ) : OK
<li>�e���v���[�g( finish.html ) : OK
<li>�e���v���[�g( list.html ) : OK
<li>�e���v���[�g( message.html ) : OK
<li>�e���v���[�g( note.html ) : OK
<li>�e���v���[�g( past.html ) : OK
<li>�e���v���[�g( read.html ) : OK
<li>�e���v���[�g( relate.html ) : OK
<li>�e���v���[�g( enter.html ) : OK
<li>Image-Magick����: NG
</ul>
</body>
</html>
2)cd $perl -wc ./wforum.cgi でのエラー
"my" variable $pastnum masks earlier declaration in same scope at ./wforum.cgi line 717.
3) cd $perl -wc ./regist.cgi でのエラー
"my" variable $flg masks earlier declaration in same scope at ./regist.cgi line 93, <DATA> line 855.
記事No | : 15419 |
投稿日 | : 2017/02/28(Tue) 02:55:08 |
タイトル | : Re^5: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hirayama |
投稿者 | : hirayama |
CGIなので、コマンドではなくブラウザで実行してください。
そうすると500 Internal Server Errorということでしょうか。
カレントがルートディレクトリになること以外にもサーバーに問題があるかもしれませんね。
ほかのCGIは動いているのでしょうか?
記事No | : 15420 |
投稿日 | : 2017/02/28(Tue) 08:42:15 |
タイトル | : Re^6: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hei01101 |
投稿者 | : kayou |
> CGIなので、コマンドではなくブラウザで実行してください。
> そうすると500 Internal Server Errorということでしょうか。
>
> カレントがルートディレクトリになること以外にもサーバーに問題があるかもしれませんね。
> ほかのCGIは動いているのでしょうか?
hirayamaさんありがとうございます。
webでcgiを実行すると500Errorになります。
が、KENTさんのカウンターCGI「dayx.cgi」は動くようになりました。(リンク先記述ミスでした。)
表題から外れますが、dayx.cgiでも、「累計カウント : <img src="daycount.cgi?gif">」が表示されないのですが。
(./lib/gifcat.plを読み込まないのかも・・・)
本日カウント や昨日カウントは表示されてますが・・・。
(あと、pcheck.cgiやtest.cgiといった単独cgiにおいては問題なく動いてます)
やはり、サーバーに問題でしょうね。
記事No | : 15421 |
投稿日 | : 2017/02/28(Tue) 11:34:35 |
タイトル | : Re^7: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hirayama |
投稿者 | : hirayama |
wforumの設置URLを書いてください。
それと先の修正でカレントディレクトの移動は成功しているのでしょうか。
記事No | : 15426 |
投稿日 | : 2017/03/02(Thu) 15:38:35 |
タイトル | : Re^8: WEB_FORU 外部ファイルの取込みエラー |
ID情報 | : hei01101 |
投稿者 | : kayou |
URL | : http://www.kayou.mydns.jp:801/index.html |
> wforumの設置URLを書いてください。
> それと先の修正でカレントディレクトの移動は成功しているのでしょうか。
hirayamaさん お返事遅くなりました。
おかげさまで無事に動くようになりました。
カレントディレクトリの移動もきちんと表示されました。
cgiスクリプトを下記のように変更すると動きました
#!/usr/bin/perl → #!/usr/bin/perl --
お世話になりました。