※ ChatGPTを利用し、要約された質問です(原文:apacheでcgiが動きません)
ApacheでCGIが動かない原因と対策
このQ&Aのポイント
Apacheをインストールし設定を行っていますが、CGIが動かない問題について考えてみましょう。
具体的な設定方法として、<Directory>内にOptions +ExecCGIとAddHandler cgi-script .cgi .plを追加する方法がありますが、動かない場合は何か根本的に間違っている可能性があります。
また、CGIが動かない原因としてはsuexecの設定やコンパイル設定なども関係しているかもしれません。エラーログやソースコードの返り値を確認して、問題を特定しましょう。
apacheをインストールし設定を行っていますがCGIが動いてくれません。
具体的にはCGIのソースがそのまま表示されてしまいます。
ネットを調べてみても
<Directory /home/ultra/public_html>
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
を追加すれば動くような事が書いてありますがこの設定では動いてくれないようです。
何か根本的に間違っていることをしているのでしょうか。
アパッチのバージョンは以下のとおりです。
Server version: Apache/2.4.3 (Unix)
suexecで動かしたくsuexecの設定もしていますが、
ログにsuexecのログが生成されないのでその前の段階かと思うのですが・・。
エラーログなどは特に表示されません。cgiのソースが20xで返されているので
当たり前かもしれませんが
.コンパイル前の /configreは以下のように設定しました。
./configure --enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-i18n \
--with-xml \
--with-mysql=/usr/local/mysql \
--with-pgsql=/usr/local/pgsql \
--enable-track-vars \
--enable-discard-path \
--with-gd \
--enable-gd-native-ttf \
--with-zlib-dir=/usr/local \
--with-pdflib=/usr/local \
--enable-shared-pdflib \
--enable-exif \
--disable-debug \
--enable-debug=no \
--enable-debugger=yes \
--enable-memory-limit=yes \
--enable-magic-quotes=yes \
--with-exec-dir=/usr/bin \
--without-system-regex \
--with-dbase=yes \
--enable-bcmath=yes \
--enable-ftp \
--enable-sockets \
--disable-posix-threads \
--enable-xsl \
--enable-xslt \
--with-xslt-sablot \
--with-xsl=/usr/local \
--with-dom=/usr/local \
--with-dom-xslt=/usr/local \
--enable-soap \
--enable-simplexml \
--with-gettext=/usr/local \
--enable-sqlite-utf8 \
--with-pdo-mysql=/usr/local/mysql \
--with-pdo-pgsql=/usr/local/pgsql \
--with-pdo-sqlite=/usr/local \
--with-curl=/usr/local/lib \
--with-openssl=/usr/local/openssl \
--with-mcrypt=/usr/local \
--with-iconv=/usr/local \
--with-xmlrpc \
--enable-safe-mode \
--enable-ssl \
--enable-dav \
--enable-so \
--enable-suexec \
--with-suexec-caller=apache \
--with-suexec-userdir=public_html \
--with-suexec-docroot=/home \
--with-suexec-logfile=/usr/local/apache2/logs/suexec_log \
--with-suexec-uidmin=500 \
--with-suexec-gidmin=100
ご回答よろしくお願いいたします
お礼
貴重なお時間をお使いいただき、ご回答ありがとうございます。 コンパイルはエラーなく通っています。設定ファイルは起動前にエラーでてLoadNoduleを追加しないと動かなかった事から違うファイルを編集しているという事はありません。モジュールを組み込むのは起動時エラーが出なくなるまで組み込んでいます。プロセスの再起動は/etc/rc.d/init.d/apached restartで行っています。この際エラーはでません。 細かいところを書いていなかったためお手数をおかけして申し訳ありません。引き続きよろしくお願いいたします。
補足
パスの確認方法は分かりませんがLoadModuleを追加する事でエラーだったものがエラーがなくなったので/usr/local/apache2/conf/httpd.conf(たしか)であってるとおもいます。postfixのcyrus-saslでも設定ファイルの場所が分からなくて苦労しましたが何か設定ファイルやその他のファイルのパスの簡単な確認方法ってあるんでしょうか。 必要なモジュールが組み込まれているかは起動時のエラーで判定してしまってよいのでしょうか。すみませんがよろしくお願いいたします。