Can';t在Apache中的Perl脚本中调用ScriptAlias站点
我正在运行Apache2.4服务器。我有以下脚本:Can';t在Apache中的Perl脚本中调用ScriptAlias站点,apache,perl,cgi,Apache,Perl,Cgi,我正在运行Apache2.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服务器上运行此脚本,它将无法工作。我
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>
ScriptAlias/mydir//srv/mydir/
选项如下符号链接
不允许超限
要求所有授权
好的,在我发布这个问题后不久,我就找到了原因
因此,如果我将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是--unsecure的别名。基本上绕过了证书验证
正确的方法是让我找出为什么没有安装证书,然后自己安装。服务器上可能没有安装curl。