こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Apache/2.2.13 WebサーバーでCGIが動きません

ご迷惑をおかけして、すいません。
何方か助けてください。お願いいたします。

OS Redhat Linux Fedora 11 バージョン 1.430

Webサーバー Apache バージョン 2.2.13

perl perl 5.10.0-73.fc11

httpd.confの記述
-------------------------

AddHandler cgi-script .cgi .pl

ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"

<Directory /home/www/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

------------------------
デレクトリー /home/www/cgi-bin 属性(775 rwxrwxr-x)

CGIファイル 属性(775 rwxrwxr-x)

http://eiwa-up.com/cgi-bin/index.pl
http://eiwa-up.com/cgi-bin/index.cgi
同じファイルで拡張子が.plは正常に動作します。
拡張子が.cgiだと動かない状態です。
お忙しい中申し訳ありませんが、何方か助けてください。
お願いいたします。

趣味で無料レンタルCGIをボランティアで提供していたのですが、
先月Linux Laser5が老朽化のためダウンしてしまい、新しくFedora11のwebサーバーを新インストールしているのですが私の知識では解決できそうにありません。無料レンタルCGIで使用していたサーバーのためたくさんの方にご迷惑おかけしている状態です。

なぜ.cgi拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

投稿日時 - 2009-09-08 14:34:41

QNo.5272781

すぐに回答ほしいです

質問者が選んだベストアンサー

私の環境で試してみました。(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も正常に動作しました。

投稿日時 - 2009-09-09 11:31:58

補足

本当にありがとうございました。
解決いたしました。
結局、OSを再インストールして見たところ正常に動きました。
上の記述で正常に動作確認できました。
原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。
本当に助けていただいて、ありがとうございました。
感謝しています。
之からも、よろしくおねがいいたします。
ありがとうございました。

投稿日時 - 2009-09-10 18:17:53

お礼

adoircus様

すばやい回答ありがとうございます。

いいろいろ検討した結果、OSを再インストールすることにしました。

やはりOSのインストールの失敗か?
ハードウエアーの問題か?

Fedora 11 バージョン 1.430 と Apache バージョン 2.2.13 の合性の問題か?

分かりませが、致命的な問題のようです。


再インストールして結果が分かりしだいまた報告いたします。

今回は本当にありがとうございました。
本当に心の支えになり助かりました。
これからもよろしくお願いいたします。
ありがとうございました。

投稿日時 - 2009-09-09 17:49:11

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

CGI を /var/www/cgi-bin/ に置くと動きませんか?

Apache のコンパイル時オプションで suExec が有効になっていると、
特定のディレクトリの下以外では CGI が実行できなくなります。
CGI をどうしても /home/www/cgi-bin/ に 置きたいのなら、 Apache のリビルドが必要かな。

ただこの場合、拡張子が .pl でも動作しないと思うので、外しているかもしれません。

参考URL:http://httpd.apache.org/docs/2.2/suexec.html

投稿日時 - 2009-09-09 23:31:35

お礼

aktado様

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

解決いたしました。

結局、OSを再インストールして見たところ正常に動きました。

OS Redhat Linux Fedora 11 バージョン 1.430

Webサーバー Apache バージョン 2.2.13

perl 5.10.0-68.fc11


上の記述で正常に動作確認できました。

原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。

本当に助けていただいて、ありがとうございました。
感謝しています。
之からも、よろしくおねがいいたします。
ありがとうございました。

投稿日時 - 2009-09-10 17:32:49

No.3の補足です。
おそらく単純な原因だと思います。
該当のcgiをどこからかコピーして使用しているという場合は、
先頭行の末尾に不正なコードが付いていることも考えられます。
#!/usr/bin/perl
をいったん削除して先頭行のみ手入力で作成してみてください。

投稿日時 - 2009-09-09 19:00:23

補足

本当にありがとうございました。
解決いたしました。
結局、OSを再インストールして見たところ正常に動きました。
上の記述で正常に動作確認できました。
原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。
本当に助けていただいて、ありがとうございました。
感謝しています。
之からも、よろしくおねがいいたします。
ありがとうございました。

投稿日時 - 2009-09-10 18:16:28

お礼

お忙しい中お教えありがとうございます。

原因はだいたい分かりそうです。
OSを再インストールしているところですが、perlのところで、どうも書き込みがおかしいので、FTPインストールに変更しました。

きっとperlのインストール中にOSとperl関連指示するファイルを壊してしまうようです。?

結論 インストールDVDが問題のようです。

できるPRO Fedora11と言う本の付録DVDなので仕方ないか?
wwwwwwww

結果が分かりしだいご報告いたします。
本当にありがとうございます。

投稿日時 - 2009-09-09 19:32:26

ANo.4

>httpd.confを上記の記述に変更しましたが、やはり解決できませんでした。

Apacheの再起動はしましたよね。???

投稿日時 - 2009-09-09 18:11:07

補足

本当にありがとうございました。
解決いたしました。
結局、OSを再インストールして見たところ正常に動きました。
上の記述で正常に動作確認できました。
原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。
本当に助けていただいて、ありがとうございました。
感謝しています。
之からも、よろしくおねがいいたします。
ありがとうございました。

投稿日時 - 2009-09-10 18:14:19

お礼

お忙しい中お教えありがとうございます。

原因はだいたい分かりそうです。
OSを再インストールしているところですが、perlのところで、どうも書き込みがおかしいので、FTPインストールに変更しました。

きっとperlのインストール中にOSとperl関連指示するファイルを壊してしまうようです。?

結論 インストールDVDが問題のようです。

できるPRO Fedora11と言う本の付録DVDなので仕方ないか?
wwwwwwww

結果が分かりしだいご報告いたします。
本当にありがとうございます。

投稿日時 - 2009-09-09 19:31:11

ANo.2

Apache2.2.13は最近でたバージョンなので少しバージョンを下げるとよいかもしれません。単なるバグだったり仕様変更の可能性があります。

比較的安定しているといわれているのは2.0あたりですが、2.2.9などでも良いかもしれません。

投稿日時 - 2009-09-09 02:14:22

補足

本当にありがとうございました。
解決いたしました。
結局、OSを再インストールして見たところ正常に動きました。
上の記述で正常に動作確認できました。
原因はDXDロムの不良品だったか、できるPRO Fedora11の出版時のparlのバージョンのバグ、どちらかだと思います。
本当に助けていただいて、ありがとうございました。
感謝しています。
之からも、よろしくおねがいいたします。
ありがとうございました。

投稿日時 - 2009-09-10 18:19:10

お礼

douteiman様

すばやい回答ありがとうございます。
今回はadoircusさまのアドバイスもありまして。

いいろいろ検討した結果、OSを再インストールすることにしました。

やはりOSのインストールの失敗か?
ハードウエアーの問題か?

Fedora 11 バージョン 1.430 と Apache バージョン 2.2.13 の合性の問題か?

分かりませが、致命的な問題のようです。


再インストールして結果が分かりしだいまた報告いたします。

今回は本当にありがとうございました。
本当に心の支えになり助かりました。
これからもよろしくお願いいたします。
ありがとうございました。

投稿日時 - 2009-09-09 17:47:09

httpd.confの
Options Indexes FollowSymLinks
という記述がデフォルトのままならば
Options Indexes FollowSymLinks MultiViews ExecCGI
のようにMultiViews ExecCGIを追加してみてはどうでしょうか。

投稿日時 - 2009-09-08 16:30:18

お礼

すばやい回答ありがとうございます。
-------------------------------
<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を上記の記述に変更しましたが、やはり解決できませんでした。

本当に忙しい中お教えありがとうございます。
また何か、分かる事がありましたらお教えください。
本当に感謝しています、ありがとうございます。

投稿日時 - 2009-09-08 17:52:14

あなたにオススメの質問