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.参考サイト
参考サイトは下記です。ありがとうございました。
Posted by yujiro このページの先頭に戻る
- PHPをビルドしてApacheと連携させる方法
- Apache 2.4 系をソースからインストール
- 「php_flag short_open_tag off」の意味
- mod_rewriteの動作を確認する方法
- WindowsにApacheを簡単にインストールする方法
- Windows+ApacheでSSLを有効にする方法
- Apacheログのリクエスト時間にミリ秒・マイクロ秒を表示する
- Windows + XAMPP + OpenSSL
- PHP における「モジュール版」と「CGI 版」の比較 + WordPress の適用例
- Apache のチューニング(その3)・DiceによるWindows再起動
- Apache のチューニング(その2)
- Apache のチューニング(その1)
トラックバックURL
コメントする
greeting