【问题标题】:Can't Call ScriptAlias Site Within Perl Script Within Apache无法在 Apache 中的 Perl 脚本中调用 ScriptAlias 站点
【发布时间】:2017-06-27 00:03:43
【问题描述】:

我正在运行 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>

【问题讨论】:

  • 你可能没有在服务器上安装 curl。

标签: apache perl cgi


【解决方案1】:

好的,在我发布这个问题后不久,我就找到了原因。

因此,如果我将 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--insecure 的别名。基本上绕过了证书验证。

不过,正确的方法是让我弄清楚为什么没有安装证书并自己安装它。

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多