4

私はすでにApacheをインストールしていました。localhost でのスクリプト作成に PHP を使用しています。perl スクリプトの実行方法を知る必要があります。sudo aptitude install libapache2-mod-perl2 をインストールしました。このフォルダー内の /var/www/cgi-bin にディレクトリ名 cgi-bin を作成しました。perl スクリプト perl_1.pl を保持しました。ディレクトリのアクセス許可が与えられます。スクリプトを実行するには、さらに何をしなければなりませんか???? http://localhost/cgi-bin/と入力するだけ で、エラー 403 が表示されました。このサーバーの /cgi-bin/ にアクセスする権限がありません。助けてください!!

ありがとう

4

3 に答える 3

5

cgi-bin の内容を読み取ることができません。その中のスクリプトの 1 つを直接参照する必要があります。この場合はhttp://localhost/cgi-bin/perl_1.pl です。

それ以外では、cgi-bin/ ディレクトリが実際に httpd.conf でそのように扱われていることを確認してください。

ああ、後で 500 に出くわした場合に備えて: perl スクリプトが有効な HTTP ヘッダーを出力していることを確認してください。これは、次の方法で簡単に実現できます。

use CGI qw(:standard);
print header();

Pwex が指摘したように、スクリプトに実行可能ビットが設定されていることを確認してください。

chmod 755 perl_1.pl

...ほとんどの場合に機能するはずです

さらに、今後の参考のために、mod_perl について言及する価値があります。これは、cgi + perl + apache の基本を習得した後の自然な次のステップであるためです。それについて詳しく説明することは、この回答の範囲を超えていますが、基本を突き止めてcgiの制限を見たときに次にどこに行くべきかがわかるように、言及したいと思いました。

于 2012-01-18T14:00:14.993 に答える
3

Apache はどのように構成されていますか? cgi-bin ディレクトリで CGI スクリプトを実行するように Apache に指示していることを確認しましたか?

何かのようなもの:

ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/"
<Directory "/var/www/website/cgi-bin/">
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

                ...
</Directory>
于 2012-08-18T11:37:56.110 に答える
0

apacheに縛られていない場合、またはこれらのスクリプトを別のポートで実行できる場合は、古いCGIスクリプトをPSGIアプリケーションとして実行するソリューションを備えたPlack/PSGIツールチェーンを使用できます。いくつかの方法については、PlackでのCGIスクリプトの実行を参照してください。

于 2012-01-18T14:09:31.450 に答える