Использование стека Bitnami WAPP в Windows 10 для локальной разработки сайта, развернутого в Linux / CentOS.Стек не включает в себя Perl, и на сайте есть несколько сценариев Perl, которые нужно запустить.
Я установил стек Bitnami WAPP на D:\Bitnami\wappstack-7.1.25-0
, и сайт в основном работает как http://localhost:86
, нокорень index.html
имеет устаревший элемент изображения счетчика <P><IMG SRC="/cgi-bin/counter.pl/index.gif" ALT="Counter"></P>
, который отображает GIF, динамически генерируемый Perl.
Итак, я установил ActiveState Perl со значениями по умолчанию.Установщик установил Perl на C:\Perl64
.Apache httpd.conf
был отредактирован, чтобы иметь
ScriptAlias /cgi-bin/ "D:\Projects\mysite.com\ROOT\cgi-bin\"
<Directory "D:\Projects\mysite.com\ROOT\cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
Сценарий counter.pl
имеет
#!/usr/bin/perl -w
…
use HTTP::Date;
, поэтому я создал папку
D:\usr\bin
, чтобы «эмулировать»каталог shebang / usr / bin.В D:\usr\bin
я добавил две ссылки:
mklink perl.exe c:\Perl64\bin\perl.exe
mklink perl526.dll c:\Perl64\bin\perl526.dll
Итак, на этом этапе на индексной странице сайта разработки выполняется скрипт counter.pl, но в файле error.log отображается
[Sat Jan 19 23:38:23.785649 2019] [cgi:error] [pid 24892:tid 1248] [client ::1:51218] End of script output before headers: counter.pl, referer: http://localhost:86/index.html
[Sat Jan 19 23:38:23.785649 2019] [cgi:error] [pid 24892:tid 1248] [client ::1:51218] AH01215: Can't locate HTTP/Date.pm in @INC (you may need to install the HTTP::Date module) (@INC contains:) at D:/Projects/mysite.com/ROOT/cgi-bin/counter.pl line 49.\r: D:/Projects/mysite.com/ROOT/cgi-bin/counter.pl, referer: http://localhost:86/index.html
[Sat Jan 19 23:38:23.785649 2019] [cgi:error] [pid 24892:tid 1248] [client ::1:51218] AH01215: BEGIN failed--compilation aborted at D:/Projects/mysite.com/ROOT/cgi-bin/counter.pl line 49.\r: D:/Projects/mysite.com/ROOT/cgi-bin/counter.pl, referer: http://localhost:86/index.html
У установки ActivePerl определенно есть C: \ Perl64 \ lib \ HTTP \ Date.pm, поэтому я пытаюсь выяснить, как:
- Создать ссылки в C: \ Perl64, такие как ссылка D: \ usr \ bin \ perl.exe найдет библиотеки Perl,
- Сконфигурируйте Apache, чтобы запускать сценарии perl непосредственно с C: \ Perl64 \ bin \ perl.exe и игнорировать строку shebang.
Я не хочу менять линию Шебанга, потому что она должна быть изменена снова, когда в конечном итоге развернута обратно на Centos.