Dotdeb is a repository containing packages to turn your Debian boxes into powerful, stable and up-to-date LAMP servers :
- PHP 5.4 and 5.3,
- useful PHP extensions : APC, imagick, Pinba, xcache, Xdebug, XHprof…
- MySQL 5.5,
- Percona toolkit,
Dotdeb supports :
- Debian 6.0 Squeeze
- both amd64 and i386 architectures
Packaging scripts are hosted on Github.
The packages from Dotdeb should work on Ubuntu, but no additional support is provided.
Using Dotdeb is very simple
- Add these two lines to your /etc/apt/sources.list file (you can also choose a mirror near you) :
deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all
- Optional: If you want to install PHP 5.4 on Debian 6.0 Squeeze, add these two lines too :
deb http://packages.dotdeb.org squeeze-php54 all deb-src http://packages.dotdeb.org squeeze-php54 all
- Then fetch the appropriate GnuPG key
wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | sudo apt-key add -
- Run apt-get update
You should now be able to use the Dotdeb packages with apt-get (or dselect, or aptitude as well…)
Using it in Debian Squeeze
In a VM created from a template made with Debian Appliance Builder, the php currently installed is v5.3.3-7 (Circa May 2012) without readline support for the cli.
On executing apt-get dist-upgrade we get the following version of php with readline support (Use CTRL-D to execute each line in PHP CLI):
# php -v PHP 5.3.13-1~dotdeb.0 with Suhosin-Patch (cli) (built: May 8 2012 21:47:56) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies # php -a Interactive shell php > echo 5+8; 13 php > exit;
Compiling your own readline
php readline debian (Circa 24 May 2011)
It is a shame that Debian's PHP does not include the readline extension, for a licencing problem.
Fortunately, it is very easy to replace readline with libedit (tested on debian6 (squeeze)). Here is how:
aptitude install php5-dev libedit-dev
Now, get the source of php5:
apt-get source php5-cli
cd to the readline extension, then compile it: cd php5-5.3.3/ext/readline phpize ./configure make
copy the compiled extension somewhere (I use /usr/local/lib/php5):
cp modules/readline.so /usr/local/lib/php5/
now, we must tell php to load this extension:
echo extension=/usr/local/lib/php5/readline.so > /etc/php5/conf.d/readline.ini
That's all. Now, everytime you invoke php, the readline extension will be available.
to be sure, execute:
php -m | grep readline
If you use apache2, you have to restart it: