トップページへ

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

小粋空間 » 自宅サーバ » Apache » ApacheのCGIでソースが表示される場合の対処

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.参考サイト

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

« 前の記事へ

次の記事へ »

トップページへ