- ベストアンサー
RedHatLinux9でCGIがうまく動かない!
- RedHatLinux9でApache2x系なのにCGIがうまく動きません。サーバエラーが発生しました。
- 行った作業としては、UserDirの設定を変更し、AddHandler cgi-scriptの設定を有効化し、ExecCGIを追加しました。
- しかし、/var/www/cgi-bin/に送ったテスト用のcgiファイルが見れません。一般ユーザでもcgiが動作するよう設定したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> もしかしてこの^M がまずいのでしょうか。 そのとおりです. Microsoft Windowsか何かの,別のOSで作成したものを,何らかのftpクライアントソフトウェアでサーバーに転送しているのではないかと想像しますが,そのftpクライアントでASCIIモードで転送しても改行コードが適切に変換されないとすれば,それはvsftpdの設定の問題だということです. で, > vsftpの設定を変更・反映して、再度test.cgiをアップ > ロードしたという理解でいいですか? のように補足要求したわけですが,どうなんですか? コメントしたことは全部確認していただかないと,手間がかかってしょうがありません. なお,転送後に改行コードを変換するには,dos2unixという便利なコマンドがあります. これで変換すると,パーミションが変化するので注意してください.
その他の回答 (4)
- astronaut
- ベストアンサー率58% (303/516)
vsftpの設定を変更・反映して、再度test.cgiをアップロードしたという理解でいいですか? 再度アップロードしたファイルに対して、cat -v で改行コードを確認しましたか?
お礼
ありがとうございます。 [member1@localhost cgi-bin]$ cat -v test.cgi #! /usr/bin/perl^M ^M print "Content-type: text/html\n\n";^M ^M print "hello";[member1@localhost cgi-bin]$ という表示が出てきました。もしかしてこの^M がまずいのでしょうか。
- astronaut
- ベストアンサー率58% (303/516)
再補足 修正すべきなのはこっちかも #ascii_upload_enabled=YES 試す時間がなくてすみません
お礼
ありがとうございます。 両方とも試してみたのですが、やはり動きません。何かほかの問題も考えられますでしょうか。
- astronaut
- ベストアンサー率58% (303/516)
今後のために補足 なにゆえに、最近このトラブルが多いのか… vsftpd の初期設定の問題(デフォルトでASCII転送が許可されない)らしい. /etc/vsftpd.conf で # ascii_download_enabled=YES のコメントを外すと良いらしいです. (vsftpdは使っていないので,web検索での受け売りです)
- astronaut
- ベストアンサー率58% (303/516)
改行コードを確認してください 過去ログにも同様の事例がたくさんあります
お礼
> vsftpの設定を変更・反映して、再度test.cgiをアップ > ロードしたという理解でいいですか? すみません、説明不足でした。vsftpの設定を変更しtest.cgiをアップし、サーバも立ち上げなおしました。それでもうまくいかなかったので、サーバにあるtest.cgiを削除し再度転送しなおしたら見れるようになりました。本当にありがとうございます。 >コメントしたことは全部確認していただかないと,手間がかかってしょうがありません. おっしゃるとおりです。今後は質問に答えていただいたときには、行った内容を詳細に書くよう心がけます。 とても助かりました。ありがとうございました。 失礼します。