2017-02-09 14 views
0

Я запускаю сервер Apache 2.4. У меня есть следующий сценарий:Не удается позвонить в ScriptAlias ​​Site внутри скрипта Perl внутри 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, это не сработает. Я ничего не возвращаю.

Если я запускаю этот скрипт локально, он работает так, как ожидалось. Он выполняет мой скрипт.pl на сервере apache, и я возвращаю правильные данные.

Что я могу сделать здесь неправильно? Любая информация, которая поможет мне отладить это, рекомендуется.

Вот мои настройки конфигурации для этого каталога в моем апаче конфигурационного файла:

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

    Require all granted 
</Directory> 
+0

У вас, вероятно, нет завитка, установленного на сервере. – SuperDuperApps

ответ

0

Ладно, вскоре после того, как я отправил этот вопрос, я понял причину.

Так что, если я изменить мой локон синтаксис команды для:

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. 

Я могу получить его на работу в обход этой проверки сертификата, изменив мой локон синтаксис команды к следующему:

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

Флаг -k является псевдонимом для --insecure. В основном обходит проверку сертификата.

Правильный способ, хотя будет для меня выяснить, почему сертификат не установлен и установить его самостоятельно.