Apache 1.3 - 2.x portability
I'm currently running only Apache 1.3 (mod_perl 1.22) and am wondering what kinds of issues there might be if I were to want to migrate my server to Apache 2.x and mod_perl 2. Are there any things that I can do (or avoid) to make such a migration as close to trivial as possible. Phil -- () ASCII ribbon campaign ()Hopeless ribbon campaign /\against HTML mail/\ against gratuitous bloodshed [stolen with permission from Daniel B. Cristofani]
Re: Apache 1.3 - 2.x portability
Phil Carmody wrote: I'm currently running only Apache 1.3 (mod_perl 1.22) and am wondering what kinds of issues there might be if I were to want to migrate my server to Apache 2.x and mod_perl 2. Are there any things that I can do (or avoid) to make such a migration as close to trivial as possible. http://perl.apache.org/docs/2.0/user/porting/compat.html The biggest problem that I've seen is that not all of the Apache:: modules on CPAN have been ported to Apache2 or been setup to work for both. Most of the big ones have so it depends on what you're using. And it's not that hard to port one of them if you need to. -- Michael Peters Plus Three, LP
Re: Apache 1.3 - 2.x portability
Michael Peters wrote: Phil Carmody wrote: I'm currently running only Apache 1.3 (mod_perl 1.22) and am wondering what kinds of issues there might be if I were to want to migrate my server to Apache 2.x and mod_perl 2. Are there any things that I can do (or avoid) to make such a migration as close to trivial as possible. http://perl.apache.org/docs/2.0/user/porting/compat.html The biggest problem that I've seen is that not all of the Apache:: modules on CPAN have been ported to Apache2 or been setup to work for both. Most of the big ones have so it depends on what you're using. And it's not that hard to port one of them if you need to. There are also some details about porting from libapreq1 (Apache::Request) to libapreq2 (Apache2::Request) that are mentioned at the bottom of this page: http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__xs__request.html There's another thing that isn't currently mentioned as well, which is that my @params = $r-param() under libapeq2 no longer returns a unique'd list of params. on a request like ?a=ba=c, it will return (a, a). under apreq1 it returned (a). Adam
Re: Apache 1.3 - 2.x portability
Michael Peters wrote: Phil Carmody wrote: I'm currently running only Apache 1.3 (mod_perl 1.22) and am wondering what kinds of issues there might be if I were to want to migrate my server to Apache 2.x and mod_perl 2. Are there any things that I can do (or avoid) to make such a migration as close to trivial as possible. http://perl.apache.org/docs/2.0/user/porting/compat.html The biggest problem that I've seen is that not all of the Apache:: modules on CPAN have been ported to Apache2 or been setup to work for both. Most of the big ones have so it depends on what you're using. And it's not that hard to port one of them if you need to. Another few tips : Use the latest Perl, the latest Apache2, and the latest mod_perl2 you can find. That is to avoid another round of renaming. Then, install this preferably on a new system, do not overwrite your Apache1 stuff. Start with a clean Apache2 config, and bring over your customised configuration bits and associated modules little by little. Do not try to copy over your http.conf from 1 to 2, and correct it, that will only bring you misery. As Michael said, use the Apache2 versions of the modules if they are available; if they are not, anyway use the latest versions you can find. Things like CGI are no problem. If you have developed your own modules in pure perl, usually it boils down to fixing the use Apache:: to use Apache2::, but there are some more things. If you do it gradually, you will quickly learn what to look for, and it will take less time in the end. If you are doing this under Linux, you may want to make sure that you have a relatively recent version to start with. Otherwise, if you use the package manager to install the software, it may install some outdated versions, and you'll find your self having to redo things again.
Re: Apache 1.3 - 2.x portability
I am attempting to use Apache2::compat on a dedicated windows to get an old open source application, that does run under apache1/mod-perl1, running. Hopefully, I can easily port this application, or is it easier to give up? Adam Prime [EMAIL PROTECTED] 11/14/2008 8:07 AM Michael Peters wrote: Phil Carmody wrote: I'm currently running only Apache 1.3 (mod_perl 1.22) and am wondering what kinds of issues there might be if I were to want to migrate my server to Apache 2.x and mod_perl 2. Are there any things that I can do (or avoid) to make such a migration as close to trivial as possible. http://perl.apache.org/docs/2.0/user/porting/compat.html The biggest problem that I've seen is that not all of the Apache:: modules on CPAN have been ported to Apache2 or been setup to work for both. Most of the big ones have so it depends on what you're using. And it's not that hard to port one of them if you need to. There are also some details about porting from libapreq1 (Apache::Request) to libapreq2 (Apache2::Request) that are mentioned at the bottom of this page: http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__xs__request.html There's another thing that isn't currently mentioned as well, which is that my @params = $r-param() under libapeq2 no longer returns a unique'd list of params. on a request like ?a=ba=c, it will return (a, a). under apreq1 it returned (a). Adam
[mp2] make test errors
-8-- Start Bug Report 8-- 1. Problem Description: Per suggestion made in this forum, I gave up on static build and am building dynamic. Now I get 2 errors in make test, plus undef errors during 'sudo make install' t/hooks/authen_basic1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:32 2008 # Current time GMT: Sat Nov 15 05:00:32 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authen_basic.t at line 26 not ok 4 FAILED test 4 Failed 1/4 tests, 75.00% okay t/hooks/authz...1..4 # Running under perl version 5.008008 for freebsd # Current time local: Fri Nov 14 21:00:33 2008 # Current time GMT: Sat Nov 15 05:00:33 2008 # Using Test.pm version 1.25 # Using Apache/Test.pm version 1.31 ok 1 ok 2 ok 3 # Failed test 4 in t/hooks/authz.t at line 19 not ok 4 FAILED test 4 --- also, in the subsequent 'sudo make install', every module was tagged with: Use of uninitialized value in length at /usr/local/lib/perl5/5.8.8/ ExtUtils/Command/MM.pm line 134. So I changed said line 134 from if (length $options{perm_rw}) { to if ($options{perm_rw}) { Which made a subsequent retry of 'sudo make install' go without error messages --- 2. Used Components and their Configuration: *** mod_perl version 2.04 *** using /build/mod_perl-2.0.4/lib/Apache2/BuildConfig.pm *** Makefile.PL options: MP_APR_LIB = aprext MP_APXS= /usr/local/apache2.2.10/bin/apxs MP_COMPAT_1X = 1 MP_DEBUG = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_TRACE = 1 MP_USE_DSO = 1 *** /usr/local/apache2.2.10/bin/httpd -V Server version: Apache/2.2.10 (Unix) Server built: Nov 14 2008 19:37:16 Server's Module Magic Number: 20051115:18 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_FLOCK_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT=/usr/local/apache2.2.10 -D SUEXEC_BIN=/usr/local/apache2.2.10/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/bin/ldd /usr/local/apache2.2.10/bin/httpd /usr/local/apache2.2.10/bin/httpd: libz.so.3 = /lib/libz.so.3 (0x28208000) libm.so.4 = /lib/libm.so.4 (0x28219000) libpcre.so.0 = /usr/local/lib/libpcre.so.0 (0x2822f000) libaprutil-1.so.3 = /usr/local/apache2.2.10/lib/libaprutil-1.so.3 (0x2825b000) libexpat.so.6 = /usr/local/lib/libexpat.so.6 (0x2827a000) libapr-1.so.3 = /usr/local/apache2.2.10/lib/libapr-1.so.3 (0x2829b000) libcrypt.so.3 = /lib/libcrypt.so.3 (0x282c3000) libpthread.so.2 = /lib/libpthread.so.2 (0x282db000) libc.so.6 = /lib/libc.so.6 (0x282ff000) *** (apr|apu)-config linking info -L/usr/local/apache2.2.10/lib -laprutil-1 -lexpat -L/usr/local/lib -L/usr/local/apache2.2.10/lib -lapr-1 -lcrypt -lpthread *** /usr/local/bin/perl5.8.8 -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=freebsd, osvers=6.3-release, archname=i386-freebsd uname='freebsd sakomina.securesites.net 6.3-release freebsd 6.3- release #2: wed jun 25 14:30:46 mdt 2008 [EMAIL PROTECTED]:usrsrcsysi386compilevkern i386 ' config_args='-Doptimize=-g -Dusedevel' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H - DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement - I/usr/local/include', optimize='-g', cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno- strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/ include' ccversion='', gccversion='3.4.6 [FreeBSD] 20060305', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags ='-Wl,-E -L/usr/local/lib' libpth=/usr/lib