2017-04-27 15 views
0

編集:この質問は、How can I troubleshoot my Perl CGI script?の重複として誤ってマークされています。その質問は、perlプログラムをデバッグする方法を説明しています。この場合、私はそれまでにさえ得ていませんでした。問題はApacheディレクティブで相対パスを使用したApache設定問題であることが判明しました。 。perl CGIスクリプトを実行するためにApacheを取得できません

元質問: 私はubuntuテストサーバー(16.04.2 LTS)をセットアップしており、perl cgiスクリプトを実行するためにそのサーバーにApacheを取得しようとしています。コマンドラインからうまく動作しますが、ブラウザには常にソースコードが表示されます。私はこのサイトと他のサイトの両方で多くのアドバイスを行ってきましたが、うまくいきませんので、どんな助けでも大歓迎です。

私のサイトのconfファイルには、この(私は、ディレクトリごとにスクリプトを実行できるようにしたい)のようになります。

<VirtualHost *:443> 
    DocumentRoot "/var/www/test" 
    ServerName mydomain.org 
    <Directory "/var/www/test"> 
      allow from all 
      Options None 
      Require all granted 
    </Directory> 

    SSLEngine on 
    SSLCertificateFile /etc/webmin/letsencrypt-cert.pem 
    SSLCertificateKeyFile /etc/webmin/letsencrypt-key.pem 
    SSLCACertificateFile /etc/webmin/letsencrypt-ca.pem 

    <Directory "path/to/dir"> 
      Options ExecCGI Indexes 
      AddHandler cgi-script .pl 
    </Directory> 
</VirtualHost> 

マイモッズ対応のディレクトリは次のようになります。

access_compat.load autoindex.conf mime.conf   setenvif.load 
alias.conf   autoindex.load mime.load   socache_shmcb.load 
alias.load   cgi.load  mpm_prefork.conf ssl.conf 
auth_basic.load  deflate.conf mpm_prefork.load ssl.load 
authn_core.load  deflate.load negotiation.conf status.conf 
authn_file.load  dir.conf  negotiation.load status.load 
authz_core.load  dir.load  php7.0.conf 
authz_host.load  env.load  php7.0.load 
authz_user.load  filter.load  setenvif.conf 

error.logにエラーはありません。アクセスログには次のようなメッセージが表示されます。

mydomain.org:443 xx.xxx.xxx.xx - - [27/Apr/2017:10:37:02 +0100] "GET /path/to/dir/test.pl HTTP/1.1" 304 3921 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" 

スクリプト(test.pl)はsimですコマンドラインから

#!/usr/bin/perl 

print "Content-type: text/html\n\n"; 

print "Hello, world!\n"; 

私がここで間違っていることを教えてもらえますか?

+0

私が見る最初のもの: '「パス/に/ DIR」'絶対パスでなければなりませんが ' "/ path/to/dir" 'それはできませんか?また、あなたの '.pl'スクリプトは適切な'#! '行で実行可能ですか? – cbmckay

+0

あなたの星!それが絶対的な道を作った!明確にするために、DocumentRootに相対的なパスを指定する方法はありますか? – Kees

+0

私は 'Location:'があなたの望むものだと思います。 '.htaccess'ファイルを使うこともできます。それらは、それらが置かれているディレクトリに適用されます。そして/または、ファイル拡張子を使って 'Files'ディレクティブを使って実行することができます。 – cbmckay

答えて

0

あなたはディレクティブ内部の非動的なコンテンツを持っていない場合だけで、ScriptAliasディレクティブを追加します。

関連する問題