-PR-
解決済み

cgiがうごきません

  • 困ってます
  • 質問No.24835
  • 閲覧数69
  • ありがとう数5
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 62% (115/184)

ApacheとPerlをインストールしてローカルでの動作確認OKなのですが、HP上では機能しません。
プロバイダー側が作った「アクセス権が認められてません
・・・どうたら、こうたら」のメッセージがでます。
すべてのファイル(cgi,html,pl・・)をEUC(文字)CR+LF
(改行)にして、アスキーモードでアップロードしました。
Perlパスやパーミッションは間違いないとは思うのですが
、アクセスすると凄い文字化けになっています。掲示板は機能しません。FTPはFFFTPですので自動改行すると思うの
ですが、コードの設定に関係があるのでしょうか?
私はWin98,プロバイダーはUNIX系です。それから、Apache
とPerlを使ってエラーを調べられるようなことを聞いたの
ですが、どのようにするのでしょうか?お願いします。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.7
レベル14

ベストアンサー率 25% (873/3452)

> 一貫性がないのです。変じゃないですか?

それぞれのセキュリティーポリシーですので、公称通りに稼動して
いるのであれば、とやかく言う事は出来ません。

> 尚、別本のCGIもローカルでの動作は確認済みです。(T_T)

そのスクリプトもInterQでは動かないのでしょうか?
それもdbm使っているのですか?
dbmpoen に関する行をすべてコメントアウトするとどうなりますか?
補足コメント
mitsy

お礼率 62% (115/184)

marimo_cx さんすみませんです。これで最後にします。別本の掲示板スクリプトはdbmを用いていない単純なものです。(名前・メルアド・コメントのみ入力)これは404のエラー。問題のスクリプトのほうは今回500のエラー、dbmopenをコメントアウトして試しましたが、500のエラー。全然お手上げです。ローカルでは問題ないのに・・。文字と改行コードが途中で変わっちゃうのかなー?別のプロバイダーで試してみようかなー (T_T)
投稿日時 - 2001-01-12 06:12:44
お礼コメント
mitsy

お礼率 62% (115/184)

marimo_cx さん大変有難う御座いました。親切なアドバイス。初心者の私に付き合っていただき、貴重な時間つかわせてしまって、大変感謝しております。相変わらずお手上げなのですが、すこし熱をさまして、また頑張ります。なにかの折りには又よろしくお願いいたします。感謝感謝m(__)m ほんと感謝です。 m(__)m
投稿日時 - 2001-01-13 02:04:04
関連するQ&A
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル8

ベストアンサー率 48% (13/27)

サーバが UNIX ということは 改行コードは LF です。 #Windows は CR+LF、Mac は CR です。 改行コードに不要な CR がついてしまっているために 正常に動作していないのではないでしょうか?
サーバが UNIX ということは
改行コードは LF です。
#Windows は CR+LF、Mac は CR です。

改行コードに不要な CR がついてしまっているために
正常に動作していないのではないでしょうか?


  • 回答No.1
レベル14

ベストアンサー率 25% (873/3452)

ローカルで動作しているという事なのでスクリプトが間違ってい ないという前提とします。 パーミッションに付いてはセキュリティー上の問題から705じゃ ないと動作しない設定にしているサーバーがあります。 cgiをおいても良いパスがセキュリティーの都合上指定されたパ スでないといけない場合があります。 cgiが任意のパスにおける場合、.htaccessを点検して下さい。 FFFTP ...続きを読む
ローカルで動作しているという事なのでスクリプトが間違ってい
ないという前提とします。

パーミッションに付いてはセキュリティー上の問題から705じゃ
ないと動作しない設定にしているサーバーがあります。

cgiをおいても良いパスがセキュリティーの都合上指定されたパ
スでないといけない場合があります。

cgiが任意のパスにおける場合、.htaccessを点検して下さい。

FFFTPのバージョンによるのかもしれませんが、FFFTPでファイ
ルをアップロードする時にFFFTPで文字コードを変換すると化
け化けになる事があるので、ローカルでEUC-jpにしておいて、
コード無変換であげるようにして見て下さい。(改行コードの
変換機能は悪さをしないみたいなので気にしなくて良いようで
す。)


チェックポイントはこんな所だと思うのですが、

> 「アクセス権が認められてません・・・どうたら、こうたら」

という事は、少なくともスクリプトが実行されていないという
ことですよね?そうなるとパスか、パーミッションか、.htaccess
あたりではないかと思われます。
補足コメント
mitsy

お礼率 62% (115/184)

marimo_cx さんの言うように無変換でアップロードしたら文字化けは直りました。エラーメッセージは「403, Forbidden ・・・」。755はOK。htaccessはいらないプロバイダー(interQ)です。パーミッションが違うのかなあ?ちなみに
borad.ini-644
jcode.pl-644
cgi_lite.pm-644
これらが入ってるフォルダ-777
にしました。これ間違ってます?
投稿日時 - 2001-01-07 00:44:45
  • 回答No.3
レベル14

ベストアンサー率 25% (873/3452)

相変わらず“403, Forbidden”なんですね。 # InterQ使った事無いので以下一般論です。 サーバーによっては .pl と .cgi の拡張子が両方とも使えたり、 “どっちか”しか使えない様になっていたりしますが、逆さとい う事はないですよね?(一応念のため) ところで、.cgiをおいてある階層にHTMLファイルを置いてみて、 それって見えますか?すみません、まだ原因考え ...続きを読む
相変わらず“403, Forbidden”なんですね。
# InterQ使った事無いので以下一般論です。

サーバーによっては .pl と .cgi の拡張子が両方とも使えたり、
“どっちか”しか使えない様になっていたりしますが、逆さとい
う事はないですよね?(一応念のため)

ところで、.cgiをおいてある階層にHTMLファイルを置いてみて、
それって見えますか?すみません、まだ原因考え中なのでとりあ
えずそれがどうなるのか教えて下さい。

# とにかく実行してないって事ですからねぇ。

最初の質問の中にご自分が書いていらっしゃいますが、FFFTPは
デフォルトのままだとUPLOAD時にFL、DOWNLOAD時にはCR+LFにコ
ード変換を自動でしてくれるので気にしなくて平気です。
補足コメント
mitsy

お礼率 62% (115/184)

相変わらず悩んでます。これってパスミスに関係ありますか?
オリジナルドメインはhttp://www.×××.com/です。オリジナルドメインでのCGIの呼び出しは出来ないようになっているらしくて、http://cgi.members.interq.or.jp/×××/user-cgi-bin/○○○.cgi で呼び出すそうです。HPにアクセスするときはhttp://www.×××.com/から入っていきます。cgi スクリプトにはURLは打ち込んでません。初期設定で $myname=$EN{SCRIPT_NAME};となってます。ここを書き換えないといけないのでしょうか?もしそれだとすれば、HPのURLはオリジナルドメインのままでもよいのでしょうか?よろしくお願いします。ちなみに同じ階層のHTMLファイルは表示します。
投稿日時 - 2001-01-08 01:26:17
  • 回答No.4
レベル14

ベストアンサー率 25% (873/3452)

> $myname=$EN{SCRIPT_NAME}; これは何でしょう?環境変数なら $myname=$ENV{'SCRIPT_NAME'}; というように収得するはずです、あぱっちなら。 あと、今回は機能しないのではなく実行しないのですから 恐らく関係ないと思われます。 > http://cgi.members.interq.or.jp/×××/use ...続きを読む
> $myname=$EN{SCRIPT_NAME};

これは何でしょう?環境変数なら

$myname=$ENV{'SCRIPT_NAME'};

というように収得するはずです、あぱっちなら。
あと、今回は機能しないのではなく実行しないのですから
恐らく関係ないと思われます。

http://cgi.members.interq.or.jp/×××/user-cgi-bin/○○○.cgi

結局これでアクセスしてもエラーは今までと同じというこ
となのでしょうか?
補足コメント
mitsy

お礼率 62% (115/184)

度々恐れ入っております。http://cgi.members.interq.or.jp/×××/user-cgi-bin/○○○.cgi
ではアクセスは出来ませんでした。interQはexecタグが使えないのですが<AHREF="board.cgi?exec=postform">投稿</A>これって、そのものズバリですか?だとすればこのスプリクトはつかえないってことですよね。どうしようかなあ(T_T)
投稿日時 - 2001-01-09 02:21:43
  • 回答No.5
レベル14

ベストアンサー率 25% (873/3452)

> <AHREF="board.cgi?exec=postform">投稿</A> パスが合っているとして、これはSSIではなくcgiへのリンクですからexec 禁止には該当しないはずです。 ところで、 <!-- test.cgi --> #!/usr/local/bin/perl < そういえばここは環境依存ですが、合ってますか? ...続きを読む
> <AHREF="board.cgi?exec=postform">投稿</A>

パスが合っているとして、これはSSIではなくcgiへのリンクですからexec
禁止には該当しないはずです。

ところで、
<!-- test.cgi -->
#!/usr/local/bin/perl < そういえばここは環境依存ですが、合ってますか?

print "Content-Type: text/html\n\n:;
print "<HTML><HEAD><TITLE>test page!</TITLE></HEAD>";
print "<BODY><H1>TEST</H1></BODY></HTML>\n";
<!-- end of test.cgi -->

みたいな、絶対動くcgiスクリプトでテストしてみるとどうなりますか?
的確な該当が出来なくてすみません。
補足コメント
mitsy

お礼率 62% (115/184)

marimo_cx さん本当に度々すみません。現状報告します。テストCGIはちゃんと表示します 。(http://cgi.・・・・・から入って)、上の階層でも下の階層でもどこに置いても。それからexecですが、cgiスクリプトの中には#execは見当たりません。if ($cgi{exec} eq "postform")のようなものばかりです。このスクリプトはdbmのサポートがいるのですが、Perlのパスは確認したところ#!/usr/local/bin/perlと同じでいいとのことです。先回質問しました$myname = $ENV{SCRIPT_NAME}; ( #このファイルの URL)スクリプトの始めのほうに書いてある環境変数ですよね、ここを $myname = http://cgi.・・・・・と書き換えるとおかしくなるでしょうか?
投稿日時 - 2001-01-10 01:28:11
  • 回答No.6
レベル14

ベストアンサー率 25% (873/3452)

> 先回質問しました$myname = $ENV{SCRIPT_NAME}; ( #このファイルの URL) 今更の質問なんですが^^;、このスクリプトは自作ですか? $myname は何の目的で使っている変数でしょう? > スクリプトの始めのほうに書いてある環境変数ですよね、ここを  > $myname = http://cgi.・・・・・と書き換えるとおかしくなるでしょうか? こ ...続きを読む
> 先回質問しました$myname = $ENV{SCRIPT_NAME}; ( #このファイルの URL)

今更の質問なんですが^^;、このスクリプトは自作ですか?
$myname は何の目的で使っている変数でしょう?

> スクリプトの始めのほうに書いてある環境変数ですよね、ここを 
> $myname = http://cgi.・・・・・と書き換えるとおかしくなるでしょうか?

このように書き換えている理由は何でしょう?

<!-- env_test.cgi -->
#!/usr/local/bin/perl

print "Content-Type: text/html\n\n:;
print "<HTML><HEAD><TITLE>test page!</TITLE></HEAD>\n";
print "<BODY>\n";

foreach (keys %ENV) {
print "$_ : $ENV{$_}<BR>\n";
}

print "</BODY>\n</HTML>\n";
<!-- env_end of test.cgi -->

これを実行してみて下さい、%ENVの意味が解ると思います。

> このスクリプトはdbmのサポートがいるのですが、

ん~、何をするcgiなんでしょう?
*.dirと*.pagをローカルで作ってアップロードしないとわけわかめになる事もありますが。
そこの所のパーミッションとファイル所有者は大丈夫な設計でしょうか?

でもエラーが500じゃなくて403なんですよねぇ?
補足コメント
mitsy

お礼率 62% (115/184)

またまた、すみません。 $ENVはよくわかりました。CGIスクリプトは掲示板用で、「掲示板を作ろう」と言う手引書に付いていたものです。今度別の本の掲示板スクリプトで試しましたが、htmlファイルは表示するのですが、CGIファイルには移動できません。HPのURLなんですが、http://www.○○○.comがオリジナルドメインで取ったものですが、http://www.interq.co.jp/××/△△△でもアクセスできるのです。2つURLが有る形なのですが、これってパスミスのようなことが起きますでしょうか?FTPソフトのホスト設定はftp.members.interq.or.jpでしてあり、上のアドレスはつかってないです。CGIの呼び出しはhttp://cgi.members.interq.or.jp/××/△△△/test.cgiでしなくてはいけないそうで、一貫性がないのです。変じゃないですか?尚、別本のCGIもローカルでの動作は確認済みです。(T_T)
投稿日時 - 2001-01-11 03:59:30
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ