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


12

私はubuntu 11.04にbugzilla 4をインストールしようとしています

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のテキストを表示します。それを修正する方法はありますか?

回答:


18

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

sudo a2enmod cgi

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

sudo service apache2 restart

実行man a2enmodして何a2enmodが起こるかを確認できます。


古いサーバーからの移行プロセスで、Ubuntu 14.04で同様の問題が発生しました。古いサーバーではないデフォルトでcgiが無効になるとは思いませんでした。これで修正されました!plzはstackoverflow.com/questions/15199198/…で同じことを推奨しています。ありがとうございました!
user3215 14年

私はシンボリックリンクを持っていますが、cgiはまだ実行されていません。
ホワイトキャット

1

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

まず、2.4 gzファイルをダウンロードして解凍します。コンパイルしようとすると、APRが含まれていないため、APRが見つからないと文句を言います。aprおよびapr-utilファイルをapacheからダウンロードし、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の後にDirectoryのパスをシステムに合わせて変更しました

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

変更を保存し、Apacheを開始しました:

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

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


共有してくれてありがとう、フォローするのに苦労していますが、これをもう少しうまく整理してくれませんか?
user230910
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.