1

私はこれを機能させるために髪の毛を引き裂いていますが、何をしても仮想ディレクトリの cgi-bin で実行する .pl ファイルを取得できません。過去 4 時間、解決策を探していて、見つけたすべてのことを試しましたが、何もうまくいきません。Perl ファイルは、デフォルト サイトでは完全に実行されますが、仮想ホストでは実行されません。私の Apache2 構成で唯一の mopdified ファイルは /etc/apache2/sites-available/default ファイルであり、現在は次のようになっています (サイト名を除く):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
   </Directory>

    <Directory /var/www/cgi-bin>
            Options +ExecCGI
            AllowOverride All
            AddHandler cgi-script cgi pl
            Order allow,deny
            allow from all
    </Directory>


#       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#       <Directory "/usr/lib/cgi-bin">
#               AllowOverride All
#               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
#               Order allow,deny
#               Allow from all
#       </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>


<VirtualHost *:80>
ServerAlias subdom.mysite.com
DocumentRoot /var/www/subdom
    <Directory /var/www/subdom/cgi-bin>
            Options +ExecCGI
            AllowOverride All
            AddHandler cgi-script cgi pl
            Order allow,deny
            allow from all
    </Directory>

</VirtualHost>

すべてのヘルプは非常に高く評価されています。

4

2 に答える 2

0

タイプミスだと思います: pl の前にピリオドが必要です。

AddHandler cgi-script .cgi .pl

これも確認してください: Perl CGI スクリプトを実行するように Apache 2 を構成するにはどうすればよいですか?

于 2012-02-21T08:48:26.230 に答える
0

これは聞き覚えがあります。

私の場合、ScriptAlias指示を間違えました。元のコメントを外しましたが、新しいものを設定するのを忘れていました。

これから設定ファイルを正しく変更して保存するとすぐに:sites-available/default

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">

..これに:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">

..そしてapache2をリロードすると、うまくいきました。スクリプトをテキストとして表示するのをやめ、スクリプトとして実行し始めました。/var/www/cgi-binまた、ブラウザでディレクトリとして表示されなくなりましたが、エラーが正しく表示されるようになりました。

Forbidden 
You don't have permission to access /cgi-bin/ on this server.
于 2013-11-15T23:24:14.197 に答える