Я пытаюсь понять, почему nph-скрипт на Perl портится из браузера. Это код:
#!/usr/bin/perl
print "Content-Type: text/plain\n\n";
print "FOO";
Я называю это nph-test.cgi, а затем запускаю из браузера, получаю:
Если я скопирую тот же самый код и назову его test.cgi, выходит нормально:
Конфигурация apache:
<Directory "/home/foo/web/example.org/*">
Options +ExecCGI +FollowSymLinks +MultiViews
AllowOverride AuthConfig
PerlResponseHandler ModPerl::Registry
AddHandler perl-script .cgi .pl
Options +ExecCGI
PerlOptions +ParseHeaders
AllowOverride All
Require all granted
</Directory>
Что я делаю не так?
Версии бывают:
Apache 2.4.18 Perl 5.22.1
Хорошо, это не совсем то решение, которого я ожидал, но сработало. Все мои нф- сценарии находятся в папке / cgi-bin / admin, поэтому я добавил это как часть моей конфигурации Apache, чтобы отключить mod_perl:
<Directory "/home/user/web/example.com/public_html/cgi-bin/admin">
Options MultiViews FollowSymLinks
AllowOverride All
Require all granted
AddHandler cgi-script .cgi .pl
Options +ExecCGI
Options FollowSymLinks
</Directory>
Похоже, что mod_perl что-то портит с непроанализированными заголовками, но он немного выше моей зарплаты. Пока это работает, я думаю, все в порядке :) (просто подумал, что опубликую его на случай, если у кого-то еще есть такая же проблема)