无法在Apache内的Perl脚本中调用ScriptAlias站点

时间:2017-02-09 05:27:27

标签: apache perl cgi

我正在运行Apache 2.4服务器。我有以下脚本:

  1 #!/usr/bin/perl
  2 
  3 use strict;
  4 use warnings;
  5 use Getopt::Std;
  6 
  7 my $build = `curl -s https://myserver.myurl.com/mydir/myscript.pl`;
  8 print "$build\n";

此脚本位于Apache服务器上。如果我在apache服务器上运行此脚本,它不起作用。我没有回来。

如果我在本地运行此脚本,它将按预期工作。它在apache服务器上执行我的script.pl,然后我找回正确的数据。

我可能在这里做错了什么?鼓励任何有助于我调试此信息的信息。

以下是我的apache配置文件中此目录的配置设置:

ScriptAlias /mydir/ /srv/mydir/
<Directory /srv/mydir/>
    Options FollowSymLinks
    AllowOverride None

    Require all granted
</Directory>

1 个答案:

答案 0 :(得分:0)

好的,在我发布这个问题后不久,我想出了原因。

因此,如果我将curl命令语法更改为:

my $build = `curl -v https://myserver.myurl.com/mydir/myscript.pl`;

我能看到详细的输出。输出中嵌入了这个:

* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
* Closing connection 0
curl: (60) server certificate verification failed.

我可以通过修改我的curl命令语法绕过此证书验证来使其工作:

my $build = `curl -k https://myserver.myurl.com/mydir/myscript.pl`;

标志 -k - 不安全的别名。基本上绕过了证书验证。

正确的方法是让我弄清楚为什么没有安装证书并自行安装。