This describes the steps required to configure multiple PHP versions on your development system, if you have issue using the AUR package. Normally one may install the AUR package on a custom path, .e.g, /usr/local/php
, but if you are like me having some issues with that you might want to try a custom compile.
Pay attention to step 6)
as this is where any required extensions are enabled. For this setup we generally need pdo
and mysql
extensions.
-
Download PHP version
5.3.13
(or any version that you are interested in) from http://php.net/releases/ -
Download the
php53
AUR package from https://aur.archlinux.org/packages/php53/ -
Apply patches from the AUR package to the downloaded PHP sources in step 1). Use all the
.patch
files.
patch -p1 -i ./freetype-path.patch
patch -p0 -i ./php.ini.patch
patch -p0 -i ./php-fpm.conf.in.patch
patch -F3 -p1 -i ./suhosin.patch
- Apply
node.c
DOM error patch from here.
curl -s https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt | patch -p0
- Use custom configuration:
./configure \
--prefix=/usr/local/php/php5.3.13 \
--with-zlib-dir \
--with-freetype-dir=shared,/usr \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--enable-ftp \
--with-gettext \
--enable-xml \
--with-xmlrpc=shared \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-mysql=shared,mysqlnd \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-pgsql=shared \
--with-pdo-sqlite=shared,/usr \
--with-pgsql=shared
Add the following for SSL support, but be advised that you most likely need openssl v0.9.8
or so.
--with-openssl \
Add the following for FPM support:
--enable-fpm \
--with-fpm-user=http \
--with-fpm-group=http
- Compile & Install
make && make install
- Use
php53-apache
package from AUR to setup Apache'shttpd.conf
.
The way this works is to copy the libphp5.so
and php5_module.conf
to some dir, e.g., /usr/local/php/php-5.3.x/httpd
and configure the path to these two files in /etc/httpd/conf/httpd.conf
.
- Copy
php.ini-development
to/usr/local/php/php-5.3.x/bin
and edit the settings.
Setup the extesion_dir
path, .e.g.,
extension_dir = /usr/local/php/php5.3.13/lib/php/extensions/no-debug-non-zts-20090626/
-
Restart the Apache server
-
(Optional) Make a link to the
php
executable, e.g.,
ln -s /usr/bin/php5.3 `/usr/local/php/php-5.3.x/bin/php`
php5.3 --version
PHP 5.3.13 (cli) (built: )
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies