Strawberry Perl с mod_perl2: сборка модулей Apache2 из CPAN

У меня есть Strawberry Perl 5.10 и mod_perl2, установленные для этих инструкции в списке рассылки mod_perl без проблем. Однако попытки установить различные Apache2:: модули, которые используют мои сценарии, приводят к ошибкам. Один (Apache2::Reload) мне удалось установить, несмотря на это:

C:\>cpan -f Apache2::Reload
CPAN: CPAN::SQLite loaded ok (v0.199)
Database was generated on Tue, 09 Nov 2010 02:40:29 GMT
Running install for module 'Apache2::Reload'
Running make for P/PH/PHRED/Apache-Reload-0.11.tar.gz
CPAN: Digest::SHA loaded ok (v5.48)
CPAN: Compress::Zlib loaded ok (v2.03)
Checksum for C:\strawberry\cpan\sources\authors\id\P\PH\PHRED\Apache-Reload-0.11
.tar.gz ok
CPAN: Archive::Tar loaded ok (v1.66)
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.40)
CPAN: Module::CoreList loaded ok (v2.36)

  CPAN.pm: Going to build P/PH/PHRED/Apache-Reload-0.11.tar.gz

Cannot opendir Y:\Apache\APACHE~2\lib: No such file or directory at C:/strawberr
y/perl/site/lib/Apache2/Build.pm line 1664.
Warning: No success on command[C:\strawberry\perl\bin\perl.exe Makefile.PL]
CPAN: YAML loaded ok (v0.71)
  PHRED/Apache-Reload-0.11.tar.gz
  C:\strawberry\perl\bin\perl.exe Makefile.PL -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install

C:\>

... просто скопировав пару файлов .pm в site/lib. Однако в других я менее уверен. Например, Apache2::RequestRec выдает следующие ошибки:

C:\>cpan -f Apache2::RequestRec
CPAN: CPAN::SQLite loaded ok (v0.199)
Database was generated on Tue, 09 Nov 2010 02:40:29 GMT
CPAN: Module::CoreList loaded ok (v2.36)
Running install for module 'Apache2::RequestRec'
Running make for G/GO/GOZER/mod_perl-2.0.4.tar.gz
CPAN: Digest::SHA loaded ok (v5.48)
CPAN: Compress::Zlib loaded ok (v2.03)
Checksum for C:\strawberry\cpan\sources\authors\id\G\GO\GOZER\mod_perl-2.0.4.tar
.gz ok
CPAN: Archive::Tar loaded ok (v1.66)
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.40)

  CPAN.pm: Going to build G/GO/GOZER/mod_perl-2.0.4.tar.gz

no conflicting prior mod_perl version found - good.

Next we need to know where the 'apxs' script is located. This script
provides a lot of information about the Apache installation, and makes
it easier to find things on your system. Normally it's located in the
same directory as the 'httpd' executable.

If you don't yet have Apache installed you can build Apache against
the Apache source code, but you won't be able to run the test suite (a
very important step). Therefore you may want to install Apache before
proceeding.


Please provide a full path to 'apxs' executable
(press Enter if you don't have it installed):


Please provide the location of the Apache directory:  C:\Program Files\Apache So
ftware Foundation\Apache2.2
[  error] Unable to open C:\Program Files\Apache Software Foundation\Apache2.2/a
p_release.h: No such file or directory
[  error] Unable to determine server version, aborting.
[  error] Please specify MP_APXS or MP_AP_PREFIX.
Warning: No success on command[C:\strawberry\perl\bin\perl.exe Makefile.PL]
CPAN: YAML loaded ok (v0.71)
  GOZER/mod_perl-2.0.4.tar.gz
  C:\strawberry\perl\bin\perl.exe Makefile.PL -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install

C:\>

Есть ли какой-нибудь трюк для компиляции Apache2:: модулей под Strawberry Perl? Мне тоже нужно компилировать свои собственные двоичные файлы Apache или что-то в этом роде? (Если да, могу ли я сделать это с помощью инструментов make, поставляемых с Strawberry?)


person Kev    schedule 09.11.2010    source источник


Ответы (2)


Если вы компилируете apache из исходного кода, у вас должен быть apxs.exe из apache. Добавьте это в PATH. Вам понадобится исходный код apache для некоторых Apache:: битов.

person J-16 SDiZ    schedule 09.11.2010
comment
Это был хороший пример, но apxs.exe не было. У меня есть исходный код apxs, и он чертовски меня раздражает под Windows с множеством отсутствующих файлов из-за ссылок на /lib, который, вероятно, должен быть \\bin. Еще неизвестно, смогу ли я заставить его скомпилировать. - person Kev; 09.11.2010
comment
Последняя ошибка, которую он выдает, - use MP_APR_CONFIG=/path/to/apr-config, которую я пытался установить как в командной строке с помощью cpan -f MP_APR..., так и с помощью set MP_APR... && cpan -f Apache2::..., ни одна из которых не сработала. Первый не работает, потому что он пытается установить MP_APR_CONFIG=..., который, очевидно, не является модулем, а второй, ну, я не уверен, где он ищет переменную, но, видимо, среда - не то. - person Kev; 09.11.2010
comment
Я не понимаю, почему сам mod_perl2 так легко установить из CPAN, но все Apache2:: модули - нет ... - person Kev; 09.11.2010
comment
Хм ... несмотря на неудачи, кажется, что в какой-то момент Apache2:: модули все проявились в site\lib. Должна быть другая проблема, которую моя запутанная установка mod_perl затрудняет отладку ... - person Kev; 09.11.2010

При установке с помощью этих инструкций фактически устанавливаются все Apache2:: модули, кроме Apache2::Reload.

person Kev    schedule 10.11.2010
comment
А Apache2 :: Reload на самом деле является чистым модулем Perl, а это означает, что вы можете просто скопировать этот файл на site \ lib \ Apache2 \, и все будет хорошо: cpansearch.perl.org/src/PHRED/mod_perl-2.0.5/Apache-Reload/ lib / - person MichielB; 28.04.2011