lamp amd 64 suse 93
Mon, Feb 20, 2006
This describes how to build a LAMP platform on Suse Linux 9.3 64 bit with PHP 5.1.2, MySql 5 and Apache 2.2.0
The first thing to watch though is Apache does not build on 64 bit Suse. It has a bug in the apr-util configure that doesn’t let you use /usr/lib64. However, the Apache folks have provided a patch, which you can get from the site.
The first thing you must do is apply the patch to srclib/apr-util/build/apu-conf.m4: http://issues.apache.org/bugzilla/show_bug.cgi?id=28205
This will get rid of the error:
/usr/lib/libexpat.so: could not read symbols: File in wrong format
The patch updates apu-conf.m4 to build an updated configure that knows what to do with a 64 bit directive. So, once you’ve applied the patch, you should delete the file:
and go back to the root directory of the source distro and delete the configure file there too.
Then, rebuild the configure scripts:
You now have a 64 bit enabled apr-util. To take advantage of it, you need to add this line to the root configure options:
Here’s the root configure in full:
I usually copy this lot into a file called configure_apache. So, all you need do now is:
./configure_apache make make install
The next pain in the neck is PHP, which doesn’t build under 64 bit cleanly either. It’s a bit of a juggle to get the paths right but if you set:
and base the other modules' directories on that it should work ok. You should be able to build PHP with most of what you want except for a couple of modules.
PHP tries to find the openLDAP libraries in /usr/local/openldap/lib64. Only easy way to sort this is just symlink it:
cd /usr/local/openldap ln -s lib lib64
That’s PHP and LDAP sorted.
The libraries end up in /usr/lib64 but although PHP can find them, the test code it creates doesn’t compile as it can’t find them! It almost seems as though the –with-libdir=lib64 doesn’t percolate down to the raw compiler level. When you try and configure PHP you get the error in config.log:
cannot find -lmysqlclient
Anyway, to sort this, just symlink again:
cd /usr/lib64 ln -s libmysqlclient.so.14.0.0 libmysqlclient.so
to create a .so file that the compiler can find.
Here’s the PHP configure in full: