PHP 5.3 snapshot installed on Ubuntu/Debian

describing installation of PHP 5.3 on a test/development machine (AMD64) at home.


[updated]17-06-2010: removed –with-curl-wrappers from the configuration
[updated]18-12-2011: added –enable-pcntl to the configuration


(12 June 2010): used http://ishare.nu/wiki/index.php/Php5.3_on_ubuntuas a lead. (but had to change some tasks to get through).

  • First removed all previous PHP implementations. (this was necessay in my case, because of 3 or 4 previous installations).
  • added several needed libraries by apt-get (check the commands below), i call apt several times for smaller statements (for debugging).
  • downloaded a snapshot from http://snaps.php.net/:

install several packages/libraries.

[shell]
apt-get update
apt-get upgrade
apt-get install checkinstall build-essential
apt-get install t1lib-bin
apt-get install libcurl4-openssl-dev
apt-get install libcurl4-gnutls-dev
apt-get install apache2 apache2-prefork-dev apache2-mpm-prefork apache2-utils aspell curl libaspell-dev libbz2-dev libc-client-dev libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libmcrypt4 libmcrypt-dev libmhash2 libmhash-dev libming-dev libmysqlclient15-dev libncurses-dev libpng3 libpng12-dev libpspell-dev libreadline-dev libsasl2-dev libsnmp-dev libt1-5 libt1-dev libtidy-dev libxml2 libxml2-dev libxml2-utils libxpm4 libxpm-dev libxslt1-dev make mysql-client-5.0 mysql-server-5.0
[/shell]

get snapshot and extract the files.

[shell]
# goto local dir.
cd /usr/local/

# get a php-5.3 snapshot
wget http://www.php.net/get/php-5.3.0.tar.gz/from/this/mirror

# unpack snapshot (eXtract gZip from File)
tar -xzf php-5.3.0.tar.gz

# enter the archive
cd php-5.3.0/
[/shell]

configure php5.3

[shell]
./configure
–with-apxs2=/usr/bin/apxs2
–with-config-file-path=/etc/php5/
–with-config-file-scan-dir=/etc/php5/conf.d
–with-pear=/usr/share/php
–with-freetype-dir=/usr/lib
–with-openssl
–with-jpeg-dir=/usr/lib
–with-png-dir=/usr/lib
–with-xpm-dir=/usr/lib
–with-zlib
–with-bz2=/bin/bzip2
–enable-bcmath
–enable-calendar
–with-curl
–enable-exif
–enable-ftp
–with-gd
–with-t1lib
–enable-gd-native-ttf
–enable-gd-jis-conv
–with-gettext
–with-imap
–with-imap-ssl
–with-ldap
–with-ldap-sasl
–enable-mbstring
–with-mcrypt
–with-mhash
–with-mysql=mysqlnd
–with-mysqli=mysqlnd
–with-pdo-mysql
–with-pspell
–with-readline
–with-snmp
–enable-soap
–enable-sockets
–without-sqlite
–enable-sqlite-utf8
–with-tidy
–enable-wddx
–with-xmlrpc
–with-xsl
–enable-zip
–with-kerberos
–enable-pcntl
[/shell]

to use the axps-extension, we need updated httpd.conf

[shell]
cd /etc/apache2/
cp -pr apache2.conf httpd.conf

#
cp -pr httpd.conf backup-20100612__httpd.conf

# prepare httpd.conf (not used by my apache2 installation)
echo ‘# LoadModule placeholder for apxs-extension in php5.3’ > /etc/apache2/httpd.conf;
echo ‘LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so’ >> /etc/apache2/httpd.conf;

[/shell]

make build

[shell]
#build php5.3
cd /usr/local/php-5.3.0
make
[/shell]

install build

[shell]
# install php5.3
make install

[/shell]

install libtool

[shell]

# completes the installation of libtool files.
libtool –finish /usr/local/php-5.3.0/libs

# create php5.conf
echo ‘
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
‘ > /etc/apache2/mods-available/php5.conf

# create php5.load
echo ‘LoadModule php5_module /usr/lib/apache2/modules/libphp5.so’ > /etc/apache2/mods-available/php5.load

# copy the backup over the invalid httpd.conf & move the backup file to a known backup location.
echo ‘# empty user config apache2’ > /etc/apache2/httpd.conf

[/shell]