- ベストアンサー
Apach2.0 ホームディレクトリでCGIが
- CGIの勉強をしています。わかる方がいらっしゃいましたら、おしえてください。
- poderosaでつないでviにて作成したソースを、Apach2.0のホームディレクトリで実行する際に、Helloと表示されることを確認しています。
- httpd.confにUserDirとDirectoryを追加して、CGIの実行設定を行いました。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
以下を追加したこともあり↓ <Directory /home/*/public_html/cgi-bin/> AllowOverride None Options ExecCGI SetHandler cgi-script Order allow,deny Allow from all AddHandler cgi-script .cgi </Directory> の SetHandler cgi-script は、 AddHandler cgi-script ではないでしょうか。
その他の回答 (5)
- auty
- ベストアンサー率58% (284/486)
>>>> AddHandler cgi-script .cgiの部分をコメントアウトすると、 CGIが動作している状態から、上記を実行するとForbiddenがでました。 これは、test.cgiのパミッションが700であることによります。(suEXEC) CGIが動作している状態から、エラー500が出たのは、次の3点でした。 ・ ~/public_html/cgi-binのパミッションを775に変更。 ・ ~/public_html/cgi-bin/test.cgiのパミッションを720に変更。 ・ プログラムの1行目を変更(実行できないように) エラーログは、/log/httpd/error_logにあるようです。 パミッションのOKとダメについて ----------------------------------------------------------- ~ : 711または755 ~/public_html/ : 755または775 ~/public_html/cgi-bin/ : 755 775はダメ test.cgi : 700 720はダメ ----------------------------------------------------------- また、これもないと思いますが、改行がDOSの2バイトになっていないこと。 poderosaを知らなくて気になっていたのですが、チェックしたところ 「Windows 用高機能ターミナルエミュレータ」となっているので少し心配になりました。 提案としては、 1.test.cgiを作り直して見るか、他から持ってきて、パミッションの設定 2.httpd.confのオリジナルがあればそれを使って設定をやり直す。 なければ、Apacheの再インストールをしてみる。 なかなか役に立たず申し訳ありません。
- auty
- ベストアンサー率58% (284/486)
今確認できないのですが >>> <Directory /home/*/public_html/cgi-bin/> は、よかったですかね。まさか <Directory /home/*/public_html/cgi-bin> では?
お礼
ご指摘ありがとうございます。 "/"を削除してみたんですが、やはり500エラーのままでした。 色々修正を加え、現在は以下のとおりとなってます。 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ExecCGI # <Limit GET POST OPTIONS> # Order allow,deny # Allow from all # </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> <Directory /home/*/public_html/cgi-bin> AllowOverride None Order allow,deny Allow from all AddHandler cgi-script .cgi Options ExecCGI </Directory> AddHandler cgi-script .cgiの部分をコメントアウトすると、cgiをブラウザで表示したときに、ソースがそのまま表示されます。 (↑ここから、ソースにリンクは通ってる、<Directory /home/*/public_html/cgi-bin>は有効になっていると考えております)
補足
コメントアウト部分は、コメントを消して実行もしましたが、うまくいきませんでした。
- auty
- ベストアンサー率58% (284/486)
指摘したとおり実行されていると思います。 >>> 以下を追加したこともあり↓ の「も」ですが、今もその設定は有効ですね。
お礼
ありがとうございました
- auty
- ベストアンサー率58% (284/486)
何度もすみません。 ・FedoraでsuEXECモジュールが有効の場合、 ・CGIのディレクトリのパミッション:755 ・cgiプログラムのパミッション :700 にしてみてください。
お礼
CentOS4になります。 パミッションを、 cgi-bin755 test.cgiを700 にしましたが、なおりませんでした。 cgiディレクトリとは、cgiがおいてあるフォルダに降りていくまでのすべてのディレクトリのパミッションを変更ということでしょうか?
- auty
- ベストアンサー率58% (284/486)
SetHandler cgi-script が不要ではないかというべきでした。
お礼
ありがとうございます。 SetHandlerとAddHandlerの違いをしらべ、SetHandlerのほうを削除しました。
お礼
ありがとうございました