ApacheのCGIでソースが表示される場合の対処

ApacheのCGIでソースが表示される場合の対処

Posted at December 15,2016 12:03 AM
Tag:[Apache]

ApacheのCGIでソースが表示される場合の対処を紹介します。

1.問題点

Linux(CentOS)にtar.gzからインストールしたApacheでCGIを動かそうとしたのですが、CGIのソースがそのままブラウザに表示されてしまいます。

httpd.confは下記のように設定済みです。

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

2.原因

原因は、CGI用のモジュールがロードされていなかったためです。

CGI用のモジュールがロードされているかどうかは下記のコマンドで確認できます。

[root@file bin]# ./apachectl -M|grep cgi
 cgid_module (shared)

「apachectl -M」は、ロードされたモジュールの一覧を表示するコマンドです。

何も表示されない場合、CGI用のモジュールがロードされていないので、次項の手順でロードします。

3.対処

CGI用のモジュールをロードするには、httpd.confの、

#LoadModule cgid_module modules/mod_cgid.so

LoadModule cgid_module modules/mod_cgid.so

に変更して、Apacheを再起動します。

# /usr/local/apache2/bin/apachectl restart

これでCGIが起動するようになりました。

4.その他

過去の情報では、

LoadModule cgi_module modules/mod_cgi.so

を設定するようになっていますが、Apacheの2.4系からworker(event) + mod_cgidのモデルが推奨されているようです。

ちなみに、インストールディレクトリでモジュールが配置されている/usr/local/apache2/modulesにもmod_cgid.soしかなく、mod_cgi.soはありませんでした。

5.参考サイト

参考サイトは下記です。ありがとうございました。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)