このスレッドはクローズされています。記事の閲覧のみとなります。
CGIが動かない理由が解らない |
|
- æ¥æï¼ 2013/12/15 22:44
- ååï¼ yoshida
- 1.不明点・障害内容:動くCGIと動かないCGIがある
2.ログの有無 :無 (有:その内容) : 3.Distribution :Cent Version :6.2 4.Service Name : Version : 5.ネットワーク構成:
お世話になります。さくらインターネットのVPSでホームページを運用しています。 今までは何事もなく動いていたあるCGIが突然動かなくなりました。他のCGIは正常に 動いており、掲示板なども問題なく動作しています。 そこで、こんなCGIをテスト用に書いてみました。
#!/usr/local/bin/perl print "Content-type: text/html¥n¥n"; print "<HTML>¥n<BODY>¥n<TITLE>CGI Script TEST</TITLE>¥n</BODY>¥n"; print "The CGI script was worked!¥n</HTML>¥n";
これをあちこちのディレクトリに転送して動作を確認しているのですが、 すでに正常動作しているディレクトリに転送しても動作しません。 もちろんperlのパスはあっていますしパーミッションも755にしています。 そのディレクトリに置いている掲示板は正常動作しています。 これまでにもCGIは色々設置した経験があり、いずれも正常動作しています。 なぜなのか、さっぱりわけが解りません。 どなたか、なにか思い当たる理由があれば教えて下さい。
エラーは500 internal server errorです。
|
Page:
[1]
[2]
[3]
[4]
[5]
[6]
|
■ コンテンツ関連情報
Re: CGIが動かない理由が解らない ( No.6 ) |
|
- æ¥æï¼ 2013/12/16 17:37
- ååï¼ Johann
- すでに指摘されてるけど、apacheのエラーログを見るのが正解。
何かしらヒントが必ず出てる。
|
Re: CGIが動かない理由が解らない ( No.7 ) |
|
- æ¥æï¼ 2013/12/16 18:29
- ååï¼ yoshida
- strangerさん
> その掲示板はCGIスクリプトなんですか > perlで動いていますか
動いている掲示板はもちろんperlスクリプトです。
> ファイルのユーザ・グループ・パーミッションを調べてみてください
ユーザ・グループ・パーミッションとも動いてるCGIもtest.cgiも 同じになっています。
> apacheが標準でcgi-binを用意していると思うけど > そこに入れたらどうなりますか
現在は/var/www/html/cgi-binを作ってその中に入っています。ほとんどすべての CGIは正常に動作しています。正常動作しているディレクトリに先のtest.cgiを 置いても動かないのがなぜなのか解りません。 現在はhttp://www.hostname/cgi-bin/directory/test.cgiとして呼んでいますが、 www直下のcgi-binにアクセスする方法が解りません。 LINUXの技術とは少し外れているかもしれませんがよろしくお願い致します。
|
Re: CGIが動かない理由が解らない ( No.8 ) |
|
- æ¥æï¼ 2013/12/16 18:42
- ååï¼ yoshida
- Johanさん
> すでに指摘されてるけど、apacheのエラーログを見るのが正解。 > 何かしらヒントが必ず出てる。
[Sun Dec 08 03:51:15 2013] [notice] Digest: generating secret for digest authent ication ... [Sun Dec 08 03:51:15 2013] [notice] Digest: done [Sun Dec 08 03:51:15 2013] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- res uming normal operations [Sun Dec 15 03:52:15 2013] [notice] SIGHUP received. Attempting to restart
/etc/httpd/logs/error_log-20131215にはこれしか出ていませんでした。
|
Re: CGIが動かない理由が解らない ( No.9 ) |
|
- æ¥æï¼ 2013/12/17 00:27
- ååï¼ アメリカン
- > 現在は/var/www/html/cgi-binを作ってその中に入っています。ほとんどすべての
>CGIは正常に動作しています。正常動作しているディレクトリに先のtest.cgiを >置いても動かないのがなぜなのか解りません。 >現在はhttp://www.hostname/cgi-bin/directory/test.cgiとして呼んでいますが、 >www直下のcgi-binにアクセスする方法が解りません。
cgi-binというディレクトリはデフォルトでScriptAliasされてます。 (↓httpd.confの抜粋) # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias directives as to # Alias. # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
だから、http://www.hostname/cgi-bin/directory/test.cgi にアクセスすると /var/www/cgi-bin/directory/test.cgi を探しに行きます。 (/var/www/html/cgi-bin/directory/test.cgiではありません)
以上が関係しているのかもしれませぬわん。
|
Re: CGIが動かない理由が解らない ( No.10 ) |
|
- æ¥æï¼ 2013/12/17 09:59
- ååï¼ yoshida
- > ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
httpd.confを見ると、この行はコメントアウトになっていました。
> だから、http://www.hostname/cgi-bin/directory/test.cgi にアクセスすると > /var/www/cgi-bin/directory/test.cgi を探しに行きます。 > (/var/www/html/cgi-bin/directory/test.cgiではありません) var/www直下のcgi-binには何もありません。空のディレクトリです。 呼び出されて動いているのは、/var/www/html/cgi-bin内のスクリプトです。 リンクはhttp://www.hostmname/cgi-bin/directory/*.cgiとしてあります。 試しにScriptAliasの行のコメントを外してhttpdを再起動させてみましたが 従来通り正常に動作します。なんだかよけいにわけが解らなくなってきました。
|
Page:
[1]
[2]
[3]
[4]
[5]
[6]
|
■ その他