Linux で自宅サーバ [ Home Server Techncial ]

>>トップページに戻る

BBS 過去ログ No.0011に戻る

タイトル: CGIが動きません
記事No: 3369
投稿日: 2005/04/12(Tue) 15:53
投稿者: じゅん
Vine linux3.1で自サーバを立てているのですが、どうしてもCGIが動作しません。CGIスクリプトはKENTさんの『dreamカウンタ』をお借りしています。

/etc/httpd/conf/httpd.conf ↓

<Directory /home/httpd/cgi-bin>
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
AddType text/html .cgi
AddHandler cgi-script .cgi
</Directory>

AddHandler cgi-script .cgi

書き換えろと指示があったCGIファイルの最初の1行は
#!/usr/bin/perl
としました。

ディレクトリの構成、パーミッションは以下の通りになります。

cgi-bin − html / menu.html(ここにカウンタを表示したい)
# |
# +-- count[777] / dream.cgi [755]
# | gifcat.pl [644]
# | drinit.cgi [644]
# | drmgr.cgi [755]
# |
# +-- data [777] / index.dat [666]
# |
# |
# |
# |
# +-- lock [777] /
# |
# +-- gif1 / 0.gif .. 9.gif
# |
# +-- gif2 / 0.gif .. 9.gif

以前はブラウザからhttp://*/cgi-bin/count/dream.cgiと入力すると500エラーがでていましたが、いろいろ設定を変更してしまって
今は404エラーが出てしまうようになりました。

どなたかご教授お願い致します。

タイトル: Re: CGIが動きません
記事No: 3374
投稿日: 2005/04/13(Wed) 21:06
投稿者: よそもの
> Vine linux3.1で自サーバを立てているのですが、どうしてもCGIが動作しません。CGIスクリプトはKENTさんの『dreamカウンタ』をお借りしています。
>
> /etc/httpd/conf/httpd.conf ↓
>
> <Directory /home/httpd/cgi-bin>
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> AddType text/html .cgi
> AddHandler cgi-script .cgi
> </Directory>
>
> AddHandler cgi-script .cgi
>
> 書き換えろと指示があったCGIファイルの最初の1行は
> #!/usr/bin/perl
> としました。
>
> ディレクトリの構成、パーミッションは以下の通りになります。
>
> cgi-bin − html / menu.html(ここにカウンタを表示したい)
> # |
> # +-- count[777] / dream.cgi [755]
> # | gifcat.pl [644]
> # | drinit.cgi [644]
> # | drmgr.cgi [755]
> # |
> # +-- data [777] / index.dat [666]
> # |
> # |
> # |
> # |
> # +-- lock [777] /
> # |
> # +-- gif1 / 0.gif .. 9.gif
> # |
> # +-- gif2 / 0.gif .. 9.gif
>
> 以前はブラウザからhttp://*/cgi-bin/count/dream.cgiと入力すると500エラーがでていましたが、いろいろ設定を変更してしまって
> 今は404エラーが出てしまうようになりました。
>
> どなたかご教授お願い致します。
http://vine.1-max.net/サイトさんの
Apache設定ペイジのCGI利用設定参考”

タイトル: Re^2: CGIが動きません
記事No: 3375
投稿日: 2005/04/14(Thu) 06:06
投稿者: じゅん
> エラーの意味が分かってますか?
> いろいろ書き換える前に、他のCGIで試してみて動くのかどうか?
> これで話しは変わってきますが。

お返事ありがとうございます。
dream.cgiの他に、同サイト内の『yybbs.cgi』『Day Counter』も試しましたが全滅でした。

> http://vine.1-max.net/サイトさんの
> Apache設定ペイジのCGI利用設定参考”

教えて頂いたサイトの変更通り設定を行い再起動を試みましたが
http://*/cgi-bin/count/dream.cgiにアクセスすると
404エラーになってしまいます。
ドメインのみ(http://*)まではページも見れて問題ないのですが。

タイトル: Re^3: CGIが動きません
記事No: 3376
投稿日: 2005/04/14(Thu) 10:52
投稿者: みのる   <ezv02014@nifty.com>
URL: http://tibbar.dip.jp/~rabbit/
> http://*/cgi-bin/count/dream.cgiにアクセスすると
> 404エラーになってしまいます。
> ドメインのみ(http://*)まではページも見れて問題ないのですが。

ブラウザに出るエラーのメッセージは「エラーが出ました」以上の情報はありません。
サーバ側のエラーメッセージを読んで下さい。
VineLinux3.1ではApacheのエラーメッセージは/var/log/httpd/error_logに出力されます。

タイトル: Re^4: CGIが動きません
記事No: 3377
投稿日: 2005/04/14(Thu) 11:22
投稿者: じゅん
> > http://*/cgi-bin/count/dream.cgiにアクセスすると
> > 404エラーになってしまいます。
> > ドメインのみ(http://*)まではページも見れて問題ないのですが。
>
> ブラウザに出るエラーのメッセージは「エラーが出ました」以上の情報はありません。
> サーバ側のエラーメッセージを読んで下さい。
> VineLinux3.1ではApacheのエラーメッセージは/var/log/httpd/error_logに出力されます。

みのるさん、ありがとうございました。
/var/log/httpd/error_logを見るとhtml/cgi-bin/count/dream.cgiを見に行くように設定してしまった様です。
httpd.confを修正したらとりあえずは500エラーまで戻り(?)ました。
さらに/var/log/httpd/error_logを見ると
Premature end of script headers
と出ていました。
エキサイトで調べたら、ヘッダスクリプトヘッダーの時期尚早な端
と和訳されました。
これってどうゆう事なんでしょうか?

タイトル: Re^5: CGIが動きません
記事No: 3378
投稿日: 2005/04/14(Thu) 12:34
投稿者: みのる   <ezv02014@nifty.com>
URL: http://tibbar.dip.jp/~rabbit/
CGIファイルにゴミがついている可能性があります。
例えば、「cat -v dream.cgi」とすると表示されたテキスト内に
「^M」という文字はありませんか?

ある場合には「nkf -e -Lu dream.cgi > dream.cgi.cp && mv dream.cgi.cp dream.cgi」
として下さい。

これはWindowなどで操作されたテキストに付く改行コードをLinux側で
解釈できない為に起こります。
上記のコマンドは文字コードと改行コードをLinuxで解釈できる物に変
換する物です。

CGIファイルの設置にはFTPを使っていますか?
SAMBAなどを使ったり、直接インターネットからダウンロードすると改
行コードや文字コードがWindows用のままになってしまい、動かない事
があります。

タイトル: Re^6: CGIが動きません
記事No: 3379
投稿日: 2005/04/14(Thu) 14:33
投稿者: 太郎ちゃん
横からすいません。
3.1は 使ったことないのですが CGIの設定自体
そんなに難しいことはないはずなんですが・・・

関係無いかもしれませんが まず最初に気が付いたんですが

<Directory /home/httpd/cgi-bin>
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
AddType text/html .cgi
AddHandler cgi-script .cgi
</Directory>

6行目 7行目ってデフォルトで書いてありましたっけ?

あと 簡単な文字を出すCgiスクリプトを試しましたか?
(Hello Worldとか)

あとCGIスプリクトのヘッダーを自分の環境に直しましたか?
(CGIファイルの #!/usr/bin/perl ってやつね)
あとヘッダーの最後に 半角スペース--を 入れてみましたか?
(#!/usr/bin/perl --  こうゆう風に)


大体それで 何処が悪くて表示できないのかわかると思うんですが・・・

振り出しに戻るような感じですが

タイトル: Re^7: CGIが動きません
記事No: 3380
投稿日: 2005/04/14(Thu) 15:08
投稿者: みのる   <ezv02014@nifty.com>
URL: http://tibbar.dip.jp/~rabbit/
混乱しそうなので補足をさせてください。

> 関係無いかもしれませんが まず最初に気が付いたんですが
>
> <Directory /home/httpd/cgi-bin>
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> AddType text/html .cgi
> AddHandler cgi-script .cgi
> </Directory>
>
> 6行目 7行目ってデフォルトで書いてありましたっけ?

デフォルトではありませんが、ファイル定義ですし、この定義自体に
問題はありません。

> あとCGIスプリクトのヘッダーを自分の環境に直しましたか?
> (CGIファイルの #!/usr/bin/perl ってやつね)

最初の投稿どおりなら変更されているようですよ。

> あとヘッダーの最後に 半角スペース--を 入れてみましたか?
> (#!/usr/bin/perl --  こうゆう風に)

これはファイルヘッダー部の改行がWindows型(CR+LF)になっている場
合の対処法です。
つまり「#!/usr/bin/perl」が「#!/usr/bin/perl**」に解釈されてし
まう事に対する対策です。
CGIスクリプト内に同様の改行があった場合、動作しない可能性もあ
ります。
ですから「nkf」フィルターコマンド等でスクリプトファイル全体の
改行コードを変換させる必要があると思うのですが。

タイトル: Re^7: CGIが動きません
記事No: 3381
投稿日: 2005/04/14(Thu) 15:10
投稿者: じゅん
> 横からすいません。
> 3.1は 使ったことないのですが CGIの設定自体
> そんなに難しいことはないはずなんですが・・・
>
> 関係無いかもしれませんが まず最初に気が付いたんですが
>
> <Directory /home/httpd/cgi-bin>
> AllowOverride All
> Options ExecCGI
> Order allow,deny
> Allow from all
> AddType text/html .cgi
> AddHandler cgi-script .cgi
> </Directory>
>
> 6行目 7行目ってデフォルトで書いてありましたっけ?
>
> あと 簡単な文字を出すCgiスクリプトを試しましたか?
> (Hello Worldとか)
>
> あとCGIスプリクトのヘッダーを自分の環境に直しましたか?
> (CGIファイルの #!/usr/bin/perl ってやつね)
> あとヘッダーの最後に 半角スペース--を 入れてみましたか?
> (#!/usr/bin/perl --  こうゆう風に)
>
>
> 大体それで 何処が悪くて表示できないのかわかると思うんですが・・・
>
> 振り出しに戻るような感じですが

みのるさん、太郎さんありがとうございました。
カウントCGI、無事動きました^^;
CGIファイルの最初の1行目の#!/usr/bin/perlが#!/usr/bin/Perl
となっていたため、動かなかったみ対です^^;

▲ページの最上部に戻る

Copyright©2003 Home Server Technical. All Right Reserved.
webmaster@miloweb.net