upgrade apache-2.2.20 -> 2.2.21
Jeremy Chadwick
freebsd at jdc.parodius.com
Wed Sep 21 05:41:56 UTC 2011
On Wed, Sep 21, 2011 at 07:23:17AM +0200, Olli Hauer wrote:
> On 2011-09-21 06:43, n dhert wrote:
> > Hi,
> >
> > this is the output:
> >
> > ]$ ldd /usr/local/libexec/apache22/libphp5.so
> > /usr/local/libexec/apache22/libphp5.so:
> > libcrypt.so.5 => /lib/libcrypt.so.5 (0x800889000)
> > librt.so.1 => /usr/lib/librt.so.1 (0x800fcd000)
> > libm.so.5 => /lib/libm.so.5 (0x8010d2000)
> > libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x8011f2000)
> > libz.so.5 => /lib/libz.so.5 (0x80143e000)
> > libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x801553000)
> > libc.so.7 => /lib/libc.so.7 (0x800647000)
> > $ ldd /usr/local/bin/php*
> > /usr/local/bin/php:
> > libcrypt.so.5 => /lib/libcrypt.so.5 (0x800855000)
> > librt.so.1 => /usr/lib/librt.so.1 (0x80096e000)
> > libm.so.5 => /lib/libm.so.5 (0x800a73000)
> > libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x800b93000)
> > libz.so.5 => /lib/libz.so.5 (0x800ddf000)
> > libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x800ef4000)
> > libc.so.7 => /lib/libc.so.7 (0x8010ee000)
> > /usr/local/bin/php-cgi:
> > libcrypt.so.5 => /lib/libcrypt.so.5 (0x800858000)
> > librt.so.1 => /usr/lib/librt.so.1 (0x800971000)
> > libm.so.5 => /lib/libm.so.5 (0x800a76000)
> > libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x800b96000)
> > libz.so.5 => /lib/libz.so.5 (0x800de2000)
> > libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x800ef7000)
> > libc.so.7 => /lib/libc.so.7 (0x8010f1000)
> > ldd: /usr/local/bin/php-config: not a dynamic executable
> > ldd: /usr/local/bin/phpize: not a dynamic executable
> > I guess this is normal?
> >
>
> I'm missing pcre.
>
> If this is lang/php5, then pcre is a default LIB dependency and
> the output should have a line like this.
>
> libpcre.so.0 => /usr/local/lib/libpcre.so.0
Incorrect.
For PHP, PCRE is included within the PHP core **STATICALLY** (but keep
reading). This is INTENTIONAL. You will not see it in ldd output. You
can verify this using "objdump -x /usr/local/bin/php | grep -i pcre" if
you think I'm mouth and trousers.
For Apache, PCRE is linked DYNAMICALLY within httpd itself.
Verification:
# ldd /usr/local/sbin/httpd | grep -i pcre
libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0xa07ba000)
> If this is php52 make sure to install devel/php52-pcre.
Mostly incorrect -- is not needed for PCRE functionality within PHP.
devel/php52-pcre is a "stub" port for lang/php52.
lang/php52/Makefile.ext has the following code in it:
.if ${PHP_MODNAME} == "pcre"
OPTIONS= BUNDLED_PCRE "Select if you use apache 2.0.x" off
.endif
.if ${PHP_MODNAME} == "pcre"
. if defined(WITH_BUNDLED_PCRE)
CONFIGURE_ARGS+=--with-pcre-regex=yes
PHP_HEADER_DIRS=pcrelib
. else
LIB_DEPENDS+= pcre.0:${PORTSDIR}/devel/pcre
CONFIGURE_ARGS+=--with-pcre-regex=${LOCALBASE}
. endif
Do you understand this code? If you need it explained let us know,
otherwise the answer should then become obvious.
I'm of the opinion lang/php52-pcre and the above shim for supporting
a library-based PCRE should be removed. PHP has gone to *extreme*
lengths to force people to use "bundled" versions of software to
guarantee 100% compatibility with PHP. Meaning: link PHP to a pcre
library that's in /usr/local/lib (and thus off the pcre port itself) and
you might experience crashing problems or other anomalies. That's why
they advocate use of bundled crap now.
> To bring in some more light it will be helpfull know your php version
> and have the output of the command.
>
> $ pkg_info -qoax php pcre
I have not seen the OP's post yet (greylisting and other crap on the
mailing list servers are stalling it), so I do not know what the true
discussion of the problem is.
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, US |
| Making life hard for others since 1977. PGP 4BD6C0CB |
More information about the freebsd-apache
mailing list