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:

This will get rid of the error:

/usr/lib/ 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:

./configure –enable-layout=UHI         

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

to create a .so file that the compiler can find.

Here’s the PHP configure in full:

./configure –with-libdir=lib64                      

comments powered by Disqus