[PHP-DEV] Possible glitch in php-4.0.1pl2 ? From: ak47 (ak47 <email protected>)
Date: 07/10/00

Maybe I've found a glitch.

1) On my system neither 4.0.1 nor 4.0.1pl2 seemed to work (while 4.0.0
is perfect): Apache died before it could write a single line to the log
file. I have compiled v4.0.1pl2 on three different systems (a
dual PII, a K6 and a K7), all running RedHat 6.1 but with
different kernel versions (2.2.16+reiserfs, 2.2.14+reiserfs).
Apache is 1.3.12 patched with apache-1.3.12+ssl-1.39
(I've tried also with apache-1.3.12+ssl-1.40), openssl is 0.9.5a
and these additional DSO modules:

- mod_perl 1.24 (tried with this module unloaded, also)
- mod_bandwidth (tried with this module unloaded, also)
- mod_put (tried with this module unloaded, also)
- php 3.0.16 (tried with this module unloaded, also)

Apache was configured this way:

./configure \
    --prefix=/usr \
    --with-layout=RedHat \
    --enable-module=all \
    --enable-shared=max \
    --disable-rule=WANTHSREGEX \
    --disable-module=auth_dbm \
    --with-perl=/usr/bin/perl \
    --enable-suexec \
    --suexec-docroot=/home/httpd/html \
    --suexec-caller=nobody \
    --add-module=mod_bandwidth.c \
    --add-module=mod_put.c

PHP 4 was configured this way:

./configure \
    --with-mysql=/usr \
    --with-zlib \
    --with-xml \
    --with-gd \
    --with-config-file-path=/etc/httpd/conf \
    --enable-versioning \
    --with-apxs=/usr/sbin/apxs \
    --enable-memory-limit \
    --enable-track-vars \
    --enable-trans-sid

2) On a fourth machine (an old Am5x86 133MHz with 32Mb RAM, RedHat
Linux 6.1, kernel 2.2.16+reiserfs, openssl 0.9.4) with the same
Apache/PHP configuration, Apache started, but I got a segmentation fault
each time a gz function was called.

3) I read a post by Antoine Pouch who noticed that "commenting out
the directives loading PHP4 module (LoadModule & AddModule) from
httpd.conf, apache starts fine. And if i uncomment the PHP directives
and send a SIGHUP to apache, it restarts fine with PHP module loaded !!"

4) For me it was the same, and once again calling a gz function resulted in
a segmentation fault.

5) I've compiled php-4.0.1pl2 without zlib support and dso got loaded
and executed as it should...

6) I've made a diff between
    /usr/src/php-4.0.0/ext/zlib/php_zlib.h
and
    /usr/src/php-4.0.1pl2/ext/zlib/php_zlib.h

I found that in the latter there were two more declarations
for gzcompress and gzuncompress, but also some missing
conditional defines:

    #if COMPILE_DL
    #undef HAVE_ZLIB
    #define HAVE_ZLIB 1
    #endif

at line 31.
With these lines added, now I have a *working* php-4.0.1pl2 dso.

8) Can anyone confirm wether this is a bug or not?

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>