Re: Mysql not functioning after upgrade to 4.2.3
| From: | ceo at l-i-e dot com | Date: | Wed, 06 Nov 2002 00:40:31 +0000 |
| Subject: | Re: Mysql not functioning after upgrade to 4.2.3 | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-122899@lists.php.net to get a copy of this message | ||
[PLEASE do NOT reply-all to this message!]
> Richard -
> I hired Richard Lynch (ceo@l-i-e.com) to fix it for me and he did. It
> appeared to be problems created by the new version of PHP and he had to
> tweak some things to make it work. I'd talk to him.
> Jeff
> Richard <richard@jacana.net> wrote:Did you ever figure this out as I am
> having the same problems.
If you are stuck on the "mailparse" thing, start with this tid-bit:
[If you don't need mailparse, and just are stuck with MySQL, skim down a bit]
-------------------------------------------------------------------------------------
Aha!
mailparse has been turned into a PEAR module.
We needed to do:
http://pear.php.net/manual/en/faq.install-pecl.php
The buildconf step (see URL contents) required libtool 1.4.3, but you only
had 1.3.5, so I upgraded that.
--------------------------------------------------------------------------------------
After that, it was the usual game of [re-]installing and [re-]configuring
and [re-]compiling enough things from source so PHP could find all the
headers and be happy.
[Well, that's *my* usual game-plan. I'm sure somebody must actually LIKE
rpms enough to fight with them all the time...]
I believe we ended up making MySQL, PHPLib (?), and at least one other PHP
Module static (IE, got rid of --with-XXX=shared,/path/path/path and used
--with-XXX=/path/path/path) to make everything happy. I know for sure we
got rid of MySQL "shared," and I'm pretty sure one other one had to go
when all was said and done.
As a rule, if something is broken, trying the "static" (or, more rarely,
"shared") instead of shared (static, respectively) tends to do wonders.
Here is the final "configure" file we used:
./configure i386-redhat-linux \
--with-prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libexecdir=/usr/libexec \
--libdir=/usr/lib \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--prefix=/usr \
--with-config-file-path=/etc \
--enable-force-cgi-redirect \
--disable-debug \
--disable-rpath \
--with-db3 \
--with-exec-dir=/usr/bin \
--with-png-dir=/usr \
--with-gd \
--enable-gd-native-ttf \
--with-ttf \
--with-gdbm \
--with-gettext \
--with-ncurses \
--with-gmp \
--with-iconv \
--with-jpeg-dir=/usr \
--with-openssl \
--with-png \
--with-zlib \
--with-ftp \
--with-layout=GNU \
--enable-bcmath \
--enable-magic-quotes \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx \
--without-oci8 \
--with-imap=shared \
--with-imap-ssl \
--with-kerberos=/usr/kerberos \
--with-mysql=/usr \
--enable-memory-limit \
--enable-bcmath \
--enable-shmop \
--enable-calendar \
--enable-dbx \
--with-curl=/usr \
--with-apxs=/usr/sbin/apxs \
--with-pdflib=/usr \
--enable-mbstring \
--enable-mailparse
Oh, and we had to add the path to the MySQL "Libraries" by hand to the
Makefile every time:
After "configure" and before "make" alter the file "Makefile" line
that says:
LTLIBRARY_LIBADD = $(LTLIBRARY_DEPENDENCIES) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS)
to be:
LTLIBRARY_LIBADD = $(LTLIBRARY_DEPENDENCIES) $(EXTRA_LIBS)
$(ZEND_EXTRA_LIBS) -L/usr/lib/mysql
(that's all one line)
Of course, if your MySQL installation isn't *IN* /usr/lib/mysql, you may
not need this, and/or you may need a different path instead of
/usr/lib/mysql. The point is to point "make" in the general direction of
being able to find your mysql.so files, wherever they may be.
[I sometimes wish "configure" would just do an "updatedb; locate foo" for
everything it needs, and then prompt me with a menu for anything it finds
two of... Might take longer to compile, but at least I'd know it found
everything I wanted it to.]
For the ./configure above:
Your mileage may vary.
Your paths almost certainly will. :-)
After reporting the -L part as a bug, Sascha (configure god) said to try
the CVS version -- I didn't though, since I didn't want to bring down
Jeff's live server to try it, and don't have the box/time/knowledge to try
create another with exactly the same setup...
I'm cc-ing PHP-General, so this info may help out others in the future.
[REMINDER: PLEASE do not Reply-All to this message!]
Disclaimer: I get PHP to compile more the Sam Spade way than the Sherlock
Holmes. Just sort of start stomping around like a bull in a china shop
and pull at any threads that come loose until there's nothing left
breaking. :-) Sacrificing rubber chickens seems to help too.