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

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

A 回答 (7件)

> 一貫性がないのです。

変じゃないですか?

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

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

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

この回答への補足

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

補足日時:2001/01/12 06:12
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/01/13 02:04

> 先回質問しました$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なんですよねぇ?

この回答への補足

またまた、すみません。 $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
    • good
    • 0

> <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スクリプトでテストしてみるとどうなりますか?
的確な該当が出来なくてすみません。

この回答への補足

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
    • good
    • 0

> $myname=$EN{SCRIPT_NAME};



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

$myname=$ENV{'SCRIPT_NAME'};

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

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

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

この回答への補足

度々恐れ入っております。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
    • good
    • 0

相変わらず“403, Forbidden”なんですね。


# InterQ使った事無いので以下一般論です。

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

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

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

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

この回答への補足

相変わらず悩んでます。これってパスミスに関係ありますか?
オリジナルドメインは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
    • good
    • 0

サーバが UNIX ということは


改行コードは LF です。
#Windows は CR+LF、Mac は CR です。

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

ローカルで動作しているという事なのでスクリプトが間違ってい


ないという前提とします。

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

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

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

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


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

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

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

この回答への補足

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

補足日時:2001/01/07 00:44
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qperl,ruby,phpは同系列?

ずっとphpとcgiは同じ分野で同レベルだとおもっていたのですが、perlとphpが同じでどちらもCGIなんでしょうか?教えて下さいお願いします。

Aベストアンサー

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
ただ、サーバのほうで設定によっては
Perlのほうが早くなっていることもあります。

PHPは新しく
ヴァージョンが新しくなるにつれていろいろな機能が増えています。しかしサーバを管理している人が常に新しいヴァージョンに設定していなかったり、設定により使えなかったりすることもあります。

その点Perlは古くから存在しているので
サーバを変えて使えなくなるということはありません。

セキュリティー的には
断然Perlのほうが強く
PHPはいまだにバグがあるといわれています。

最後にまとめとして、
どっちもどっちなので
上を参考に簡単なプログラムなら
PHPのほうが楽かと思いますが
サーバの状況により使えないと考えたら
Perlに変えたほうがよいと思います。

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
...続きを読む

Q現在、html,cgi(perl),javascriptを主に使用して

現在、html,cgi(perl),javascriptを主に使用して、ホームページを作成しています。
作成中いくつか自分だけでは作成につまってしまった部分を質問させていただきます。

まず1つが、通常のhtmlやcgiでIE上に表示させているホームページのそのページを、
ページ上のボタンをクリックすることでwordやexcelに保存するということは可能なのでしょうか?

次に2つ目として、フォームから送信し、textファイル内に日付を付けて保存してあるデータから、
特定の日付のデータを抽出して別ページに表示することは可能でしょうか?

どちらか1つだけでもよろしいので、回答お願いします。

Aベストアンサー

前者はサーバサイドでwordなりexcelなりを生成して送り返してるやりかただね。
(pdf作成サイトとかと仕掛けは一緒)
これはwordやexcelの書類形式が(バイナリ的に)どうなってるか知らないとできない。(最近のはxml形式みたいだからどうにかなる気がする)
後者は、textがユーザローカルの場合無理。formのfileでサーバ側に一度uploadしてもらいサーバサイドで処理して埋め込むなりクッキーにするなり。(通常は埋め込む)
textというのがサーバ側のならjavascriptかクッキーで橋渡しが楽だと思う。

Qperlで作成中ですが、改行がおかしいです

よろしくお願いします

data.txtに 入っているデータをすべて読み込み(@lines)、HTMLのテキストエリアにそのまま@linesで書き出すと、
------------texterea------------
1,名前,タイトル・・・・
 2,名前,タイトル・・・・
 3,名前,タイトル・・・・
------------/texterea-----------
というように、テキストエリアには、2行目以降の行頭に半角スペースが出てしまいます。
まずは、こちらを正しく表示する方法を教えてください。

また、このテキストエリアで データを訂正したものを、再びdata.txtに書き込みたいのですが
name=newlogでクエリして、
print OUT $in{'newlog'}; としてdata.txtにそのまま書き出そうとすると、ログには改行が増えてしまい、下記のようにログがどんどん壊れていってしまいます。

1,名前,タイトル・・・・

 2,名前,タイトル・・・・

 3,名前,タイトル・・・・


この対策方法を教えて頂きたいのです。
どうぞよろしくお願い致します。

よろしくお願いします

data.txtに 入っているデータをすべて読み込み(@lines)、HTMLのテキストエリアにそのまま@linesで書き出すと、
------------texterea------------
1,名前,タイトル・・・・
 2,名前,タイトル・・・・
 3,名前,タイトル・・・・
------------/texterea-----------
というように、テキストエリアには、2行目以降の行頭に半角スペースが出てしまいます。
まずは、こちらを正しく表示する方法を教えてください。

また、このテキストエリアで データを訂正したものを、再びda...続きを読む

Aベストアンサー

たぶん、
print "@line";
としているのでは?
print @line;
でうまくいくはずです。

Qapache1.3とperlでCGI

超初心者です。
windows XPでapache1.3 と active perl 5.1.2をインストールして、
CGIを動作させたいと考えています。

http://localhostを入力してapacheの起動画面は表示されていること
を確認しました。

その後httpdconfに下記を追加しました。
AddHandler cgi-script .cgi .pl

AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .pl

<Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する
printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて
実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。

#! C:/Perl/bin/perl
##
## printenv -- demo CGI program which just prints its environment
##

print "Content-type: text/plain\n\n";
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}

どうすればCGIが実行できるようになるのでしょうか?
ご教授ください。よろしくお願い致します。

超初心者です。
windows XPでapache1.3 と active perl 5.1.2をインストールして、
CGIを動作させたいと考えています。

http://localhostを入力してapacheの起動画面は表示されていること
を確認しました。

その後httpdconfに下記を追加しました。
AddHandler cgi-script .cgi .pl

AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .pl

<Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
...続きを読む

Aベストアンサー

LoadModule cgi_module modules/mod_cgi.so
のコメントを外してありますか?

Qperl:Insecure dependency in system while running setuid at・・・とapacheのエラーにでます。

あるWebページのフォームから入力された文字列を引数としてCGIプログラム中でsystem("program argv[1]")としてあり、サーバー上でprogramが実行されるようにしたいのですが、実行させるとapacheのエラーログに次のように出ます。

[error] Insecure dependency in system while running setuid at /var/www/cgi-bin/change.cgi line 42., referer: http://aaa.bbb.ac.jp/cgi-bin/testsasl.html

Webでちょっと調べたところTaintチェックで引っかかっているようなのですがそうなのでしょうか。もしそうなら以下のことについてお聞きします。

1.一時的にTaint機能を解除するにはどうすればいいですか。
2.Taint機能を有効にしておいてsystem()が動くようにするにはどうすればいいですか。
3.sudoを使ってCGIからプログラムを動かすという方法について、どのような手順が必要ですか(参考URLでも構いません)。

スクリプトのエラーの部分です。
if ($args{'account'} eq 'username') {
printf "パスワードを変更します。";
system("/usr/sbin/saslchange $args{'account'} $args{'newpassword'} ");

あるWebページのフォームから入力された文字列を引数としてCGIプログラム中でsystem("program argv[1]")としてあり、サーバー上でprogramが実行されるようにしたいのですが、実行させるとapacheのエラーログに次のように出ます。

[error] Insecure dependency in system while running setuid at /var/www/cgi-bin/change.cgi line 42., referer: http://aaa.bbb.ac.jp/cgi-bin/testsasl.html

Webでちょっと調べたところTaintチェックで引っかかっているようなのですがそうなのでしょうか。もしそうなら以...続きを読む

Aベストアンサー

あ、そのまえに同じURLの、「エラーの回避」を読んで。

ほかには、
http://www.w3.org/Security/Faq/www-security-faq.html

さっきのところからリンクされてるところだが、結構いいやも


このカテゴリの人気Q&Aランキング

おすすめ情報