- ベストアンサー
Apache/2.2.13 WebサーバーでCGIが動かない?解決方法を教えてください
- Apache/2.2.13 WebサーバーでCGIが正常に動作しない状態です。
- CGI拡張子が.plの場合は問題なく動作していますが、.cgiの場合には動作しません。
- ご迷惑をおかけしておりますが、解決方法をご教授いただけると助かります。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
私の環境で試してみました。(fedora11) 結論から云えば、何も特別な設定もしないで、ほとんどデフォルト設定のままで正常に動作しました。 下記のとおりです。 httpd.confのフォルダ設定 Options ExecCGIにしただけで、残りの部分はデフォルトのまま。 AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI <--ここを変更しただけ Order allow,deny Allow from all </Directory> 以下の内容で/var/www/cgi-bin/myenv.cgiを作成(実行可能ファイル) #!/usr/bin/perl print "Content-type: text/html\n\n"; foreach $key (keys %ENV) { print "$key --> $ENV{$key}<br>"; } myenv.cgiの所有者変更 # chown apache:apache /var/www/cgi-bin/myenv.cgi 念のためmyenv.cgiを確認 # ls -l /var/www/cgi-bin/myenv.cgi -rwxr-xr-x 1 apache apache 117 2009-09-09 08:00 /var/www/cgi-bin/myenv.cgi ブラウザでmyenv.cgiを実行すると下記の環境変数一覧が表示されました。 SCRIPT_FILENAME は myenv.cgi であることが確認できます。 SERVER_SOFTWARE は Apache/2.2.13 (Fedora) でであることが確認できます。 SCRIPT_NAME --> /cgi-bin/myenv.cgi SERVER_NAME --> 127.0.0.1 SERVER_ADMIN --> root@localhost HTTP_ACCEPT_ENCODING --> gzip,deflate HTTP_CONNECTION --> keep-alive REQUEST_METHOD --> GET HTTP_ACCEPT --> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 SCRIPT_FILENAME --> /var/www/cgi-bin/myenv.cgi SERVER_SOFTWARE --> Apache/2.2.13 (Fedora) HTTP_ACCEPT_CHARSET --> Shift_JIS,utf-8;q=0.7,*;q=0.7 QUERY_STRING --> REMOTE_PORT --> 40891 HTTP_USER_AGENT --> Mozilla/5.0 (X11; U; Linux i686; ja; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4 SERVER_PORT --> 80 SERVER_SIGNATURE --> Apache/2.2.13 (Fedora) Server at 127.0.0.1 Port 80 HTTP_ACCEPT_LANGUAGE --> ja,en-us;q=0.7,en;q=0.3 REMOTE_ADDR --> 127.0.0.1 HTTP_KEEP_ALIVE --> 300 SERVER_PROTOCOL --> HTTP/1.1 PATH --> /sbin:/usr/sbin:/bin:/usr/bin REQUEST_URI --> /cgi-bin/myenv.cgi GATEWAY_INTERFACE --> CGI/1.1 SERVER_ADDR --> 127.0.0.1 DOCUMENT_ROOT --> /var/www/html HTTP_HOST --> 127.0.0.1 ※問題なく動作しますので”eiwa-up"さんの原因は解りません。 なお、SSIも正常に動作しました。
その他の回答 (5)
- aktado
- ベストアンサー率0% (0/1)
CGI を /var/www/cgi-bin/ に置くと動きませんか? Apache のコンパイル時オプションで suExec が有効になっていると、 特定のディレクトリの下以外では CGI が実行できなくなります。 CGI をどうしても /home/www/cgi-bin/ に 置きたいのなら、 Apache のリビルドが必要かな。 ただこの場合、拡張子が .pl でも動作しないと思うので、外しているかもしれません。
お礼
aktado様 本当にありがとうございました。 解決いたしました。 結局、OSを再インストールして見たところ正常に動きました。 OS Redhat Linux Fedora 11 バージョン 1.430 Webサーバー Apache バージョン 2.2.13 perl 5.10.0-68.fc11 上の記述で正常に動作確認できました。 原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。 本当に助けていただいて、ありがとうございました。 感謝しています。 之からも、よろしくおねがいいたします。 ありがとうございました。
No.3の補足です。 おそらく単純な原因だと思います。 該当のcgiをどこからかコピーして使用しているという場合は、 先頭行の末尾に不正なコードが付いていることも考えられます。 #!/usr/bin/perl をいったん削除して先頭行のみ手入力で作成してみてください。
お礼
お忙しい中お教えありがとうございます。 原因はだいたい分かりそうです。 OSを再インストールしているところですが、perlのところで、どうも書き込みがおかしいので、FTPインストールに変更しました。 きっとperlのインストール中にOSとperl関連指示するファイルを壊してしまうようです。? 結論 インストールDVDが問題のようです。 できるPRO Fedora11と言う本の付録DVDなので仕方ないか? wwwwwwww 結果が分かりしだいご報告いたします。 本当にありがとうございます。
補足
本当にありがとうございました。 解決いたしました。 結局、OSを再インストールして見たところ正常に動きました。 上の記述で正常に動作確認できました。 原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。 本当に助けていただいて、ありがとうございました。 感謝しています。 之からも、よろしくおねがいいたします。 ありがとうございました。
- sabayades
- ベストアンサー率60% (65/107)
>httpd.confを上記の記述に変更しましたが、やはり解決できませんでした。 Apacheの再起動はしましたよね。???
お礼
お忙しい中お教えありがとうございます。 原因はだいたい分かりそうです。 OSを再インストールしているところですが、perlのところで、どうも書き込みがおかしいので、FTPインストールに変更しました。 きっとperlのインストール中にOSとperl関連指示するファイルを壊してしまうようです。? 結論 インストールDVDが問題のようです。 できるPRO Fedora11と言う本の付録DVDなので仕方ないか? wwwwwwww 結果が分かりしだいご報告いたします。 本当にありがとうございます。
補足
本当にありがとうございました。 解決いたしました。 結局、OSを再インストールして見たところ正常に動きました。 上の記述で正常に動作確認できました。 原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。 本当に助けていただいて、ありがとうございました。 感謝しています。 之からも、よろしくおねがいいたします。 ありがとうございました。
- douteiman
- ベストアンサー率0% (0/1)
Apache2.2.13は最近でたバージョンなので少しバージョンを下げるとよいかもしれません。単なるバグだったり仕様変更の可能性があります。 比較的安定しているといわれているのは2.0あたりですが、2.2.9などでも良いかもしれません。
お礼
douteiman様 すばやい回答ありがとうございます。 今回はadoircusさまのアドバイスもありまして。 いいろいろ検討した結果、OSを再インストールすることにしました。 やはりOSのインストールの失敗か? ハードウエアーの問題か? Fedora 11 バージョン 1.430 と Apache バージョン 2.2.13 の合性の問題か? 分かりませが、致命的な問題のようです。 再インストールして結果が分かりしだいまた報告いたします。 今回は本当にありがとうございました。 本当に心の支えになり助かりました。 これからもよろしくお願いいたします。 ありがとうございました。
補足
本当にありがとうございました。 解決いたしました。 結局、OSを再インストールして見たところ正常に動きました。 上の記述で正常に動作確認できました。 原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。 本当に助けていただいて、ありがとうございました。 感謝しています。 之からも、よろしくおねがいいたします。 ありがとうございました。
httpd.confの Options Indexes FollowSymLinks という記述がデフォルトのままならば Options Indexes FollowSymLinks MultiViews ExecCGI のようにMultiViews ExecCGIを追加してみてはどうでしょうか。
お礼
すばやい回答ありがとうございます。 ------------------------------- <Directory /> Options Indexes FollowSymLinks AllowOverride None </Directory> <Directory /home/www/cgi-bin> AllowOverride None Options Indexes FollowSymLinks MultiViews ExecCGI Order allow,deny Allow from all </Directory> ------------------------------- httpd.confを上記の記述に変更しましたが、やはり解決できませんでした。 本当に忙しい中お教えありがとうございます。 また何か、分かる事がありましたらお教えください。 本当に感謝しています、ありがとうございます。
お礼
adoircus様 すばやい回答ありがとうございます。 いいろいろ検討した結果、OSを再インストールすることにしました。 やはりOSのインストールの失敗か? ハードウエアーの問題か? Fedora 11 バージョン 1.430 と Apache バージョン 2.2.13 の合性の問題か? 分かりませが、致命的な問題のようです。 再インストールして結果が分かりしだいまた報告いたします。 今回は本当にありがとうございました。 本当に心の支えになり助かりました。 これからもよろしくお願いいたします。 ありがとうございました。
補足
本当にありがとうございました。 解決いたしました。 結局、OSを再インストールして見たところ正常に動きました。 上の記述で正常に動作確認できました。 原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。 本当に助けていただいて、ありがとうございました。 感謝しています。 之からも、よろしくおねがいいたします。 ありがとうございました。