Re: CGIが表示できない。。。 ( No.1 ) |
|
- ????????? 2006/06/13 21:09
- ????????? 管理者
-
test.cgiを設置したパスはどこですか?
「/etc/httpd/conf/httpd.conf」内の以下の場所は正しく設定されていますか?
実行したいパスのディレクティブ<Directory "/var/www/・・・・・">内のOptionsに「ExecCGI」は明記されていますか? ↓ Options ExecCGI
また、MIME(cgi)を実行する拡張子は以下の様になっていますか? AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .cgi .pl
|
Re: CGIが表示できない。。。 ( No.2 ) |
|
- ????????? 2006/06/13 22:43
- ????????? 板違いな初心者
-
早速のレスありがとうございます。
test.cgiを設置した場所はもちろん/var/www/html/test.cgiです WinSCPで見てもその場所にあるので間違いありません
<Directory "/var/www/html"> Options Includes ExecCGI FollowSymLinksとやって降りましたので間違いなく。。。
MIME ? は
AddHandler cgi-script .cgi としているところを
AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .cgi .pl と変更をしてみました。 どこか訂正するところを間違ったのでしょうか?
そしてhttp://サーバーアドレス/test.cgiとやるとHTTP 500 - 内部サーバー エラー となってしまいました。 ますます悪化したような。。。(~o~)
|
Re: CGIが表示できない。。。 ( No.3 ) |
|
- ????????? 2006/06/13 23:01
- ????????? 管理者
-
ちなみに、Perlスクリプトの宣言部「#!/usr/local/bin/perl」と言う部分。
以下の実行結果と合っていますか? # which perl
また、実行時のエラーのログは何と出ていますか? ログファイルは「/var/log/httpd/error_log」です。
|
Re: CGIが表示できない。。。 ( No.4 ) |
|
- ????????? 2006/06/13 23:52
- ????????? moja
-
実は同じような症状に悩まされました。CGIが動かなねぇ〜…
で、 <Directory /var/www/html> : AllowOverride None : </Directory>
の AllowOverride を All にしたところ、動きました。 2.0.xの httpd.conf は、None で動いているのに、2.2.0 は動かない(?_?) それ以外で原因と思えるところ、フシはあるものの、動いてしまったのでテストはしてません。
|
Re: CGIが表示できない。。。 ( No.5 ) |
|
- ????????? 2006/06/14 07:11
- ????????? 板違いな初心者
-
管理者 様 ありがとうございます。 #which perl ではもちろん /usr/local/bin/perl です。
cgiの記述も#!/usr/local/bin/perlで一致しております。 またエラーログはHTTP 500 - 内部サーバー エラー と出たときの物です。 ↓ 192.168.0.2 - - [13/Jun/2006:22:41:15 +0900] "GET /test.cgi HTTP/1.1" 500 741 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; .NET CLR 1.1.4322)"
moja 様 情報ありがとうございました
<Directory /var/www/html> : AllowOverride None : </Directory>
の AllowOverride を All に変えて見ては?ということでしたが。。。これは既に Allになっていました。 私が意図的に替えたのか、デフォルトでそうだったのかは不明です。(~o~)
|
Re: CGIが表示できない。。。 ( No.6 ) |
|
- ????????? 2006/06/14 07:29
- ????????? 管理者
-
それでは、以下のコマンド結果はどうなりますか?
# perl test.cgi
また、test.cgiの文字コードはサーバのロケールと合っていますか?
# kcc -c test.cgi # locale
|
Re: CGIが表示できない。。。 ( No.7 ) |
|
- ????????? 2006/06/14 11:32
- ????????? moja
-
あまり関係無いかもしれませんが、
私のところのCGI回り、 <IfModule mod_cgid.c> Scriptsock run/httpd.cgid </IfModule> を入れてます。 AllowOverride と、それ以外は、デフォルトのままです。
管理者さんの言うところのロケールに関して、 うちの場合、過去資産には手を入れずに動かしたいという意図があって 2.2.0で見えなくなったmod_encoding.so を再投入。結果、 # kcc -c test.cgi test.cgi: shift-JIS 問題無く動いてますよん。
何度もやってるとは思いますが、 パーミッション設定、再確認してみてはいかがでしょう?
|
Re: CGIが表示できない。。。 ( No.8 ) |
|
- ????????? 2006/06/14 12:05
- ????????? moja
-
もうひとつ、Exec-Shield。
デフォルトだと11だったかな<FC5>それを、2に変更。 そんなぐらい<思い当たるフシ
|
Re: CGIが表示できない。。。 ( No.9 ) |
|
- ????????? 2006/06/14 19:20
- ????????? 板違いな初心者
-
管理者 様 moja 様ありがとうございます。昼間は会社に行っているので手元にサーバーがなくて。。。遅くなってしまいました。私の頭では理解不能なことばかりのレスですが。。。
<Directory /var/www/html> で # perl test.cgi とやるとものすごい長い英文が出てきます(^_^;) 私はサーバー上のテキストをコピーしてここに貼り付けるすべを知らないので全文は掲載出来ませんが、 perl : warning :setting locale faild. perl : warning :please check that your locale settings: Language =(unset), LC_ALL = (unset), LANG = "c" are supported and installed on your system perl: warning : Failling back to the standard locale ("C"). とまだまだ延々と続きます
で(~o~)
私のperl記述がどこか違うのかと思い、管理者様のサイトから直接コピーペーストして作ってみた test.cgi(ここでは便宜的に test.cgi2 ) として再度トライしてみました。
なんとあろうことか?ブラウザー上にCGIが表示できたのです!!!!!! プリントアウトして2者をくまなくチェックして見比べてもまったく同じ記述なのに・・・釈然としません このtest2.cgi で perl test2.cgiとやると やっぱり
perl : warning :setting locale faild. perl : warning :please check that your locale settings: Language =(unset), LC_ALL = (unset), LANG = "c" are supported and installed on your system perl: warning : Failling back to the standard locale ("C"). Content-type: text/html と続いて htmlのソースの記述が続きますがそこで終わりです。
***********
# kcc -c test.cgi ← これについては kcc:command not foud となり # locale については locale:Cannot set LC_CTYPE to default locale :NO such file or directory locale:Cannot set LC_MESSAGES to default locale :NO such file or directory locale:Cannot set LC_ALL to default locale :NO such file or directory LANG=C 以下延々と続きます(^_^;)
たとえば自分がテスト用に作った
#!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "Hello, Linux users!";
この記述で何故同じディレクトリで表示できないのか?
また、先の表示に成功したtest2.cgi をユーザー名のディレクトリで何故表示できないのか? 不思議なことばかりです ユーザ名は http://○○.jp/~ユーザー名/test2.cgi で <Directory /home/*/public_html> Options Includes ExecCGI </Directory> に変更しています。
(もちろん http://○○.jp/~ユーザー名/index.htmlとしては動作確認が取れております)
今夜これから成功した /var/www/htmlに CGIカウンターを設置してみようと思います。 この状態で動くのかどうか、自作サーバー3週間のキャリアでは判断できません。 .htaccessは?このままでいいのか? WinSCPの転送モードは? レンタルーサーバーでは多くのCGIをアップしましたが未知の世界です。
勝手なことばかり書いてしまいましたが、アドバイスをいただければ幸いです。
|
Re: CGIが表示できない。。。 ( No.10 ) |
|
- ????????? 2006/06/14 22:08
- ????????? 管理者
-
試験的に作成したスクリプトは、Windows側で作成して転送されましたか?
LANG="C"となっているので、usコード(正式名は不明)だと思います。 改行コードがLFではなく、CR+LFなどになっている場合、スクリプトが実行できなくなる場合があります。
試して欲しいのですが以下の手順を行ってみてください。
現在のシステムの状態で、スクリプトのヘッダ部を変更して確認してみて下さい。 ?「test.cgi」をEUCコード(改行をLF)に変換して確認する。 → 変換方法は、「http://kajuhome.com/tips/tips_00_007.shtml」を参照下さい
?「#!/usr/local/bin/perl」を「#!/usr/local/bin/perl --」にして確認する
システムのロケールをEUCにする。 ?「http://kajuhome.com/inst_after.shtml#n03」を実施し、サーバを再起動する。 この後、CGIが正しく表示されるか確認する。(この時のCGIは?のコード体系のスクリプトで実施してください。)
|
Re: CGIが表示できない。。。 ( No.11 ) |
|
- ????????? 2006/06/14 23:41
- ????????? 板違いな初心者
-
管理者 様 すばやくも親切なレスありがとうございます。
<試験的に作成したスクリプトは、Windows側で作成して転送されましたか? はい、test.cgiも自作cgi もコンソール上から作っているので改行コードのモンダイはないと思います。
「http://kajuhome.com/tips/tips_00_007.shtml」とした場合 nkf: command not foud となったのでフリーソフトのCharset Coverterを使いtest.cgiを変換した後「#!/usr/local/bin/perl --」と変更 して test.cgiをブラウザー上から再度トライしましたがHTTP 500 - 内部サーバー エラー となってしまいました。
?「http://kajuhome.com/inst_after.shtml#n03」これについては以前文字化けで悩んだときに既に実行済みです。
そしてアクセスカウンターを設置した報告をさせてください。出来ましたヽ(^o^)丿 結局 /var/www/html 上でめでたくdaycounter.cgi のアクセスカウンターの動作確認が出来ました。(^^♪ しかし /~ユーザ名/daycounter.cgi で表示させようとすると表示できませんでした。
Linuxをはじめて3週間あまり、不思議なことがたくさんありました。今回のCGIもそうですが、sshの設定でも昨日はユーザー名でログイン出来たのに、今日はrootに設定を変えないとログインできないとか。。。そんな場面に何度か遭遇しました(私の操作ミスまたは記憶違いかも知れませんが) 管理者 様に色々ご教授いただきましたが、どうしても test.cgi が何故出来なかったのか特定できませんでした。 もし気を悪くされていないようでしたらユーザー名のディレクトリで何故カウンターが表示できないかお知恵を拝借いただければうれしいです。
|