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 или нещо подобно? (Ако е така, мога ли да направя това с инструментите за създаване, доставени с 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