it-swarm-ja.com

テキストを表示する代わりにApacheでcgiを実行するにはどうすればよいですか?

Bugzilla 4をUbuntu 11.04にインストールしようとしています

私はhttpd.confに次を追加しました

<Directory “/var/www/dev.spincentre/bugzilla”>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI
   DirectoryIndex index.cgi
   AllowOverride Limit
</Directory>

しかし、URLにアクセスすると、Apacheはスクリプトを実行する代わりにindex.cgiのテキストを表示します。それを修正する方法はありますか?

11
FigBug

Mod_cgiモジュールをロードしましたか?ディレクトリ/ etc/Apache2/mods-enabled /にシンボリックリンクcgi.loadがあるかどうかを確認できます。そのようなシンボリックリンクがない場合は、次を実行して作成できます。

Sudo a2enmod cgi

次に、Apacheを再起動します。

Sudo service Apache2 restart

man a2enmodを実行して、a2enmodの機能を確認できます。

17
elmicha

Apache 2.4をインストールするときに、解決すべき多くの問題があり、cgiを実行する代わりにテキストが表示されるという同じ問題もありました。解決策は上記と同じではなく、Apache 2.2の解決策です

まず、2.4 gzファイルをダウンロードして解凍します。コンパイルしようとすると、APRが含まれていないため、APRが見つからないと文句を言います。 Apacheからaprおよびapr-utilファイルをダウンロードし、Apacheをコンパイルするディレクトリにsrclibというサブディレクトリに展開する必要があります。そのため、パスは./httpd/srclib/aprおよび./httpd/srclib/aprになります。 -util。また、ディレクトリ名からバージョン番号を削除する必要があります。

/ path/httpdディレクトリにcdして、コンパイルします

$ ./configure --with-included-apr

設定はデフォルトでPREFIX =/usr/local/Apache2になります

$ make

$インストールする

$ vi PREFIX/conf/httpd.conf

Httpd.confファイルを編集して、実行するcgiを取得する必要があります。

私の場合、次のことを行いました。

listen 80をListen 127.0.0.1:80に変更します

次の行をアクティブにします:LoadModule cgid_module modules/mod_cgid.so

severNameをServerName 127.0.0.1:80に変更しました

documentRootとDirectoryのパスをシステムに合わせて変更しました

scriptAliasのパスを変更しました

行Scriptsock cgisockを有効にしました

scriptAliasの後にディレクトリのパスをシステムに合わせて変更しました

行AddHandler cgi-script .cgiを有効にしました

変更を保存し、Apacheを起動しました:

$/usr/local/Apache2/bin/apachectl -k start

これがこれに苦労している人を助けることを願っています;)

1
Peter Trevathan