投稿日:2003年02月24日 作成鷹の巣

No.8618 Apach2.0のCGIで『Internal Server Error』が出て、動かない。



Apach2.0のCGIで『Internal Server Error』が出て、動かない。

No.8618 投稿時間:2003年02月24日(Mon) 00:55 投稿者名:うにどん URL:

先日に続き、もう一つ質問させて頂きます。宜しくお願いします。

RedHatL8.0+Apach2.0でCGIを利用しようとすると、『Internal Server Error』が出てしまいます。
設置しようとしたCGIは、KENT-WEBさんのASKA BBSです。
パーミッションは、
設置ディレクトリ 755
aska.cgi 755
aska.log 666
jcode.pl 644
となっています。#!usr/bin/perlへの変更も済ませているので、CGIが問題とは思えず、
Apach側の設定が問題だと思ってます。

Apachの設定は、http://pc-unix.goco.ne.jp/web3.htmlを参考に、
/home/user/public_html以下で自由にCGIが設置できるようにしてます

httpd.confの変更点(CGI関係のみ)
-----------------------------------
<Directory "/home/*/public_html">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
-----------------------------------
↑を追加して、

#AddHandler cgi-script .cgi
↓変更
AddHandler cgi-script .cgi
です。

ちなみに、http://localhost/cgi-bin/aska.cgiでも同様にエラーが出ます。
(/var/www/cgi-binでCGIの使用を許可してます)

それでは、宜しくお願いします。


Apacheのエラーログにはなんと出力されてますか?

No.8621 投稿時間:2003年02月24日(Mon) 01:06 投稿者名:APACHE URL:

> 先日に続き、もう一つ質問させて頂きます。宜しくお願いします。
>
> RedHatL8.0+Apach2.0でCGIを利用しようとすると、『Internal Server Error』が出てしまいます。
ええなぁLinux...
うちもはよう環境移行したい...

でApacheのエラーログにはなんと出力されてますか?


エラーログの内容。

No.8622 投稿時間:2003年02月24日(Mon) 01:19 投稿者名:うにどん URL:

> でApacheのエラーログにはなんと出力されてますか?

[Mon Feb 24 01:13:13 2003] [error] [client localhost] Premature end of script headers: aska.cgi
[Mon Feb 24 01:13:13 2003] [error] [client localhost] failed to open log file
[Mon Feb 24 01:13:13 2003] [error] [client localhost] fopen: Permission denied

レス、ありがとうございます。
エラーログは上記のようになってます。
ログファイルが開けないのかな?と思って、もう一回パーミッションを
見直しましたが、やはり問題はないようです・・・。
よろしくおねがいします。


スクリプト先頭行のPerlへのパスの変更と改行コードによる問題。

No.8623 投稿時間:2003年02月24日(Mon) 01:31 投稿者名:APACHE URL:

> > でApacheのエラーログにはなんと出力されてますか?
>
> [Mon Feb 24 01:13:13 2003] [error] [client 203.165.2.14] Premature end of script headers: aska.cgi

先頭行のPerlへのパスを
#!/usr/bin/perl

の部分を

#!/usr/bin/perl --
に変更してみてください
※#!/usr/bin/perl は環境に合わせてください。
もしこれで直るようなら典型的な改行コードによる問題ですので
改行コードを適切な物に変更すれば--を追加しなくてもよくなります。


無事にCGIが動いてくれました。改行コードの変更方法は?

No.8624 投稿時間:2003年02月24日(Mon) 01:40 投稿者名:うにどん URL:

> #!/usr/bin/perl --
> に変更してみてください
> ※#!/usr/bin/perl は環境に合わせてください。
> もしこれで直るようなら典型的な改行コードによる問題ですので
> 改行コードを適切な物に変更すれば--を追加しなくてもよくなります。

ありがとうございました。無事にCGIが動いてくれました。
今日はほとんどこの問題で一日中悩んでいたので、本当に嬉しいです。
ところで、改行コードの問題との事ですが、Windowsの改行コードがCR+LFで、
LinuxがLFなので、cgiの改行コードをLFに変更するって事でいいのでしょうか?
それとも、Apach側の設定で使用する改行コードの変更ができるのでしょうか?
質問攻めで申し訳ないですが、よろしかったら助言をお願いします。

本当にありがとうございました。


FTPのアスキーモードは、サーバーに合わせて改行コードが変更されるので、問題ないのでは?

No.8625 投稿時間:2003年02月24日(Mon) 01:56 投稿者名:うにどん URL:

すみません、ちょっと自分で調べてみました。
私が使っているFFFTPは、アスキーモードで送信すると、送信先に合わせて改行コードの変換を
してくれる、といった情報を発見しました。
ということは、私はCGIファイルをアスキーモードで転送してるので、改行コードが変更されてないと
おかしいはずですよね。
ちょっとそのあたりを調べてみようとおもいます。
APACHEさん、本当にありがとうございました。


相手のOS情報が正しく取得できないときは変換しないみたいです。

No.8628 投稿時間:2003年02月24日(Mon) 02:10 投稿者名:APACHE URL:

> すみません、ちょっと自分で調べてみました。
> 私が使っているFFFTPは、アスキーモードで送信すると、送信先に合わせて改行コードの変換を
> してくれる、といった情報を発見しました。
> ということは、私はCGIファイルをアスキーモードで転送してるので、改行コードが変更されてないと
> おかしいはずですよね。
相手のOS情報が正しく取得できないときは変換しないみたいです。
※もしくはFFFTPの自動認識がおかしい。

WindowsでCGIを編集するなら
PerlEditerを使うと改行コード変更オプション(設定で保存方式が選択できる)も
あるし各変数を強調してくれるので便利です。


他のLinuxサーバに同じファイルを転送しても正常動作。OS情報の可能性大。

No.8630 投稿時間:2003年02月24日(Mon) 09:37 投稿者名:うにどん URL:

> 相手のOS情報が正しく取得できないときは変換しないみたいです。
> ※もしくはFFFTPの自動認識がおかしい。
>

他のLinuxサーバで同じファイルを転送しても、きちんと
動いてるので、OSの情報が正しく取得出来てない可能性が大きいですね。
ちょっといろいろ調べてみようと思います。

> WindowsでCGIを編集するなら
> PerlEditerを使うと改行コード変更オプション(設定で保存方式が選択できる)も
> あるし各変数を強調してくれるので便利です。

何から何まで、詳しい説明をありがとうございました。


解決しました

No.8670 投稿時間:2003年02月25日(Tue) 19:56 投稿者名:うにどん URL:

vsftpdは、標準でアスキーモードでの転送に対応してないことがわかりました。
vsftpd.conf中の
#ascii_upload_enabled=YES
#ascii_download_enabled=YES
の部分のコメントを外すと、アスキーモードでの転送が可能になるらしいです。
出張中につき、自分で試すことはできませんが、帰ったら早速試してみたいと思います。


CRLFからLFに変更してください。

No.8626 投稿時間:2003年02月24日(Mon) 02:00 投稿者名:APACHE URL:

> ありがとうございました。無事にCGIが動いてくれました。
> 今日はほとんどこの問題で一日中悩んでいたので、本当に嬉しいです。
エラーログのエラー内容を検索エンジンにかけると結構出てきます。
先程レス付けたあとにGoogleで検索してみましたが結構同様の事例があるようです。

> ところで、改行コードの問題との事ですが、Windowsの改行コードがCR+LFで、
> LinuxがLFなので、cgiの改行コードをLFに変更するって事でいいのでしょうか?

CRLFからLFに変更してください。

EUC/LR
なら問題ないと思います。


エラーログの存在をすっかり忘れていました。

No.8627 投稿時間:2003年02月24日(Mon) 02:04 投稿者名:うにどん URL:

> > ありがとうございました。無事にCGIが動いてくれました。
> > 今日はほとんどこの問題で一日中悩んでいたので、本当に嬉しいです。
> エラーログのエラー内容を検索エンジンにかけると結構出てきます。
> 先程レス付けたあとにGoogleで検索してみましたが結構同様の事例があるようです。
>
恥ずかしいことに、エラーログの存在をすっかり忘れていて、APACHEさんに言われるまで
気がつきませんでした。
ずっとApachでのCGI設置について調べていたので、とんだ見当違いでした。
それでは、失礼します。


|目次|掲示板|過去ログ目次|▲頁先頭|