The official announcement
A few days ago, the PHP Group released PHP 5.3.1 :
The PHP development team would like to announce the immediate availability of PHP 5.3.1. This release focuses on improving the stability of the PHP 5.3.x branch with over 100 bug fixes, some of which are security related. All users of PHP are encouraged to upgrade to this release.
Security Enhancements and Fixes in PHP 5.3.1:
- Added “max_file_uploads” INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion.
- Added missing sanity checks around exif processing.
- Fixed a safe_mode bypass in tempnam().
- Fixed a open_basedir bypass in posix_mkfifo().
- Fixed failing safe_mode_include_dir.
Further details about the PHP 5.3.1 release can be found in the release announcement, and the full list of changes are available in the ChangeLog.
The Dotdeb changes
On the Debian side, some changes were made :
- the packages are now patched with the official Suhosin patch.
- beside the apache2, apache2filter, CGI and CLI flavours, the FPM one has now its own dedicated package, named “php5-fpm”. It will allow you to have greater performances and a lot of more features on a CGI-style installation (FYI, an init script, a config file and a nginx config sample are provided).
How to install?
Because migrating from PHP 5.2. to PHP 5.3 can break some applications, here is the Dotdeb release policy :
- PHP 5.2 is still the default branch for Debian Lenny for some weeks/months. PHP 5.3 packages are kept on a separate repository.
- PHP 5.3 will be the default branch for the upcoming Debian Squeeze (mid-2010)
Then , to install PHP 5.3 on your Debian “Lenny” box, just add these two entries in your /etc/apt/sources.list :
deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all
Now launch your favorite commands ( apt-get update && apt-get upgrade) to upgrade your box.
In case you enjoy this new release, feel free to donate or to take a look at my whishlist… Xmas is coming ;)

Thanks!
I’m not sure (if it has been in your package before), but /usr/share/xcache/admin appears to went missing in php5-xcache?!
@bc : the php5-fpm package depends on libevent, but a backport from Sid is available on the repository.
http://php53.dotdeb.org/dists/lenny/libevent/
I’ve got alot of trouble with the php5-fpm packages.
First it references /usr/local/bin/php-fpm which doesnt exist after installing the package. /usr/bin/php-fpm AND /usr/bin/php5-fpm both exist but dont seem to point to the same file so I dont know whats up with that. When I’ve fixed the init script php5-fpm complains:
Starting php-fpm PHP: syntax error, unexpected BOOL_TRUE in /etc/php5/fpm/php5-fpm.conf on line 24
I dont understand what is wrong with the xml… Anyway, even trying to start php-fpm with just some commandline options dont seem to work properly. Something is terribly wrong here.
I even tried running a completely new XEN instance of Debian 5 Lenny on Rackspace Cloud - but I get the same errors on that one without any other installations.
@OverlordQ : Only Lenny & Etch are supported. If you want to build the packages for unstable (and then satisfy most of the dependencies), launch these command after adding the appropriate deb-src entry in your sources.list :
apt-get build-dep php5 apt-get source -b php5
To get Ubuntu Karmic to install these packages I had to manually install these: http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
I wish the mirrors were up to date. They’re all stuck at Sep 20, 2009. I’m only getting about 40kB/s :-(
apt-get build-dep php5
The following packages have unmet dependencies: apache2-prefork-dev: Depends: libaprutil1-dev but it is not going to be installed
so I install them to make it happy:
aptitude install apache2-prefork-dev libaprutil1-dev
The following NEW packages will be installed: apache2-prefork-dev apache2-utils{a} apache2.2-bin{a} apache2.2-common{a} libapr1-dev{a} libaprutil1-dbd-sqlite3{a} libaprutil1-dev libaprutil1-ldap{a} uuid-dev{a}
So I build dep again:
apt-get build-dep php5
The following packages will be REMOVED: apache2-prefork-dev libaprutil1-dev libdb4.8-dev The following NEW packages will be installed: libdb4.6 libdb4.6-dev
Now let’s build source:
apt-get source -b php5
dpkg-checkbuilddeps: Unmet build dependencies: apache2-prefork-dev
Any way to tell it to use libdb4.8 so we dont have this circular conflict?
@OverlordQ : now that you have the most of the build-dependencies installed or resolved, you can use this method :
apt-get source php5 # without the -b switch cd php5-5.3.1 ./debian/rules binary
Hi,
Can I use the php5.3.1 source from dotdeb to build ubuntu 9.10 packages?
If yes, how should I do?
I just try to use the normal build build process, but it just tell me know.
Here comes the output:
Nothing happend :(
@Mark : Use the commands in the comment above… It will skip the build-dependency problems
cd php5-5.3.1 ./debian/rules binary
Hi Guillaume
Thanks for your help, but there is no luck, I still can not build the php5.3 deb package in Ubunte Karmic
I have to modify the ./debina/control file, and change the libdb4.6-dev to libdev4.7
After that, I still got error messages
====
–with-pgsql=shared,/usr PGSQL_INCLUDE=
pg_config --includedircat: confdefs.h: ../configure: 490: ac_fn_c_try_run: not found ../configure: 490: 5: Bad file descriptor ../configure: 490: :: checking for pthreads_cflags: not found ../configure: 490: 6: Bad file descriptor ../configure: 490: checking for pthreads_cflags… : not found@Neves : the update is coming but I have to look at a potential security issue. About FPM, the problem does not come from the patch, but from the packaging.
Packages will certainly be uploaded this week-end, I was quite busy at (future-ex) work these days.
Thats great news!
Shame there is no testing branch, i will have to keep checking the repo instead..
@alnr : Dotdeb packages are built against Lenny libraries. Squeeze is not supprted although it should work with one of this solution :
I thing, there is an error in the package. When i try this: $ php scripts/generate.php
I get this error: Fatal error: Call to undefined function mb_internal_encoding() in /var/www/myairdeals/app/bootlocal.php on line 18
But when i use the script in web browser through apache everything goes all right.
@loyza : Could you please execute a “php -v” ?
What I have :
php -v
PHP 5.3.1-0.dotdeb.1 with Suhosin-Patch (cli) (built: Dec 5 2009 20:08:29) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
php -r “if (function_exists(‘mb_internal_encoding’)) echo "ok\n";”
ok
Hoping to get quick help here, thanks. Trying to install php5-curl but wants installation DVD:
apt-get install php5-curl
Reading package lists… Done Building dependency tree Reading state information… Done The following packages were automatically installed and are no longer required: libterm-readkey-perl Use ‘apt-get autoremove’ to remove them. The following extra packages will be installed: ca-certificates libcurl3 libssh2-1 The following NEW packages will be installed: ca-certificates libcurl3 libssh2-1 php5-curl 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/468kB of archives. After this operation, 1491kB of additional disk space will be used. Do you want to continue [Y/n]? y WARNING: The following packages cannot be authenticated! php5-curl Install these packages without verification [y/N]? y Media change: please insert the disc labeled ‘Debian GNU/Linux 5.0.0 Lenny - Official i386 DVD Binary-1 20090214-16:54’ in the drive ‘/cdrom/’ and press enter
Is there any quick workaround to this? This is on remote server we have no access to atm.
i’m tring install php5-curl but i can’t at this moment upgrade to php 5.3X, so get this error etc. any advice? Thanks a lot.
Err http://packages.dotdeb.org stable/all php5-curl 5.2.9-0.dotdeb.2 404 Not Found
Nuno Costa
Hey,
It seems there’s something wrong with your packages (Or my config) I get a /tmp/mysql.sock not found error.
My mysql’s my.cnf has the correct paths in both server and client headers, and I tried manually setting the paths in php.ini but that didn’t work.
What else can I do ?
Regard, Xeross
@Guillaume: Well giving a piece of code you can test it with might be tricky, it was only appearing when using PDO_MySQL.
Reproduction code is tricky because I’m using Doctrine ORM. However if you download it and simply connect to a database the error should emerge.
For now I’ve switched to a build of 5.3.0 I found that works properly.
And I was running the latest package from your repository afaik.
I just installed PHP 5.3.1 from dotdeb on Ubuntu 9.10
The problem is that does not come with PDO_MYSQL Driver.
This is the only reason I can’t use PHP ! I hardly depend on PDO
Please tell me how can I install it ? I tried PECL and I was able to compile pdo_mysql.so, I put the file in the same pdo.so directory, I added the line “extension=pdo_mysql.so” in pdo.ini file, but no effect. phpinfo() does not show the driver.
I wonder if this build added support for pdo-mysql
Any idea ?
PHP5.3.1.0 works (phpinfo) on Jaunty (Ubuntu).
php -v give me some info like deprecated and warnings, but no errors.
PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0 PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0 PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/ps.ini on line 1 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/imagick.so’ - /usr/lib/php5/20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/mcrypt.so’ - /usr/lib/php5/20090626/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/pam_auth.so’ - /usr/lib/php5/20090626/pam_auth.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/ps.so’ - /usr/lib/php5/20090626/ps.so: cannot open shared object file: No such file or directory in Unknown on line 0
Great work. But now going back to 5.2
Hello,
I’m wondering how to fix this error on my Debian 5 x64 amd64 it worked fine, now i get this:
Removing sapi/fpm/configure
Patch 011-suhosin.patch does not remove cleanly (refresh it or enforce with -f) make: *** [unpatch] Error 1 dpkg-buildpackage: failure: debian/rules clean gave error exit status 2 Build command ‘cd php5-5.3.1 && dpkg-buildpackage -b -uc’ failed. E: Child process failed defikon:
# cd defikon:# cd php5-5.3.1 defikon:/php5-5.3.1# defikon:/php5-5.3.1# dpkg-buildpackage -b -uc dpkg-buildpackage: set CFLAGS to default value: -g -O2 dpkg-buildpackage: set CPPFLAGS to default value: dpkg-buildpackage: set LDFLAGS to default value: dpkg-buildpackage: set FFLAGS to default value: -g -O2 dpkg-buildpackage: set CXXFLAGS to default value: -g -O2 dpkg-buildpackage: source package php5 dpkg-buildpackage: source version 5.3.1-0.dotdeb.1 dpkg-buildpackage: source changed by Guillaume Plessis dpkg-buildpackage: host architecture i386 debian/rules clean dh_testdir sed -i -e ’s/EXTRA_VERSION="-0.dotdeb.1"/EXTRA_VERSION=""/’ configure.in rm -f prepared-stamp QUILT_PATCHES=debian/patches quilt –quiltrc /dev/null pop -a -R || test $? = 2 Patch 011-suhosin.patch does not remove cleanly (refresh it or enforce with -f) make: *** [unpatch] Error 1 dpkg-buildpackage: failure: debian/rules clean gave error exit status 2Hey,
I’ve just updated to the latest version, now setting the default mysql socket is working, but leaving it empty makes PDO assume it’s /tmp/mysql.sock so it seems it still isn’t reading from the proper location.
using ./debian/rules binary in php5-5.3.1 dir i get this:
configure: error: recode extension can not be configured together with: imap make: *** [configure-apache2-stamp] Error 1
Please help me out =(
Now even my CP doesnt work anymore doing this error with PDO connection:
SQLSTATE[HY000] [2002] No such file or directory
mysql_sock file is located at directory specified in my.ini so no idea what could be wrong :|
still getting Connection failed: SQLSTATE[HY000] [2002] No such file or directory by ISPCP :(
seems it uses PDO mysql connection, anyway to fix this module or somthing ?
@Xeross : My fix was to replace the default /tmp/mysql.sock by Debian default location : /var/run/mysqld/mysqld.sock But, changing the defaut_socket location in the PDO settings does not work yet. This issue should be fixed in PHP 5.3.2.
Try to resolve this by setting a symlink. Something like :
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
Or use local network socket (putting skip-name-resolve in the [mysqld] section of my.cnf should speed up this kind of connection if you only use IP addresses - not canonical names - in your mysql grants)
Guillaume
I LOVE YOU (L) u fixed my issue :P
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
This helped with my error Connection failed: SQLSTATE[HY000] [2002] No such file or directory
THANKS ALOT:)
@Jacky : First of all, be sure to use up-to-date packages from Dotdeb.
Then, if you want to rebuild them, don’t try to run “./debian/rules clean”, it doesn’t run well at this time.
About your connection problem, it seems to be the same as Xeross’ one. Try to resolve this by setting a symlink. Something like :
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
Be sure to read all your error logs before posting (many) comments. They often contain the cause of your problem. Then the fix is easy.
yooo now i’m getting:
Warning: idn_to_ascii() expects parameter 2 to be long, string given in /var/www/ispcp/gui/include/ispcp-functions.php on line 374
Any ideas ? i didnt had that warrning with php 5.2.6 now i’m unable to login to ISPCP..
Hi, I have added the two lines to my /etc/apt/sources.list
deb http://php53.dotdeb.org stable all deb-src http://php53.dotdeb.org stable all
as instructed.
after running apt-get update, I run a apt-get upgrade to update php.
I get this message when attempting to upgrade:
apt-get upgrade Reading package lists… Done Building dependency tree Reading state information… Done The following packages have been kept back: libapache2-mod-php5 libavcodec51 php5 php5-cli php5-common php5-dev php5-gd php5-mcrypt php5-mysql 0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
9 not upgraded… why? :s
Thanks! On Ubuntu 9.10 Karmic I also needed the following packages:
http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb http://us.archive.ubuntu.com/ubuntu/pool/main/libt/libtool/libtool_1.5.26-1ubuntu1_i386.deb
(if using 64bit just change i386 suffix to amd64)
@bman : the php5-adodb package does not come from Dotdeb
About the php5-apc package, please ensure that you install the Dotdeb’s one.
Dotdeb PHP extensions are located in /usr/lib/php5/20090626+lfs/
Thank you! That helped a lot.
Experimental repository of Debian and its PHP dependencies frightened me.
Hi,
I know, I’m late… ;)
But I would like to upgrade to PHP 5.3 now.
As to your upgrade information: “Then , to install PHP 5.3 on your Debian “Lenny” box, just add these two entries in your /etc/apt/sources.list :
deb http://php53.dotdeb.org stable all deb-src http://php53.dotdeb.org stable all”
Does this mean, that “deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all” is still needed in the sources.list or do I have to delete this two lines?
Thank you in advance.
I tried to update from 5.2.4 to 5.3 with the above method (on ubuntu 8.04). all things went errorless.
at the end i restarted apache but php version is still 5.2.4. i even checked it by restarting the server as well.
Please suggest.
Don’t blame me but I am still running Lenny… ;)
And I would like to upgrade PHP from 5.2 to 5.3.
I guess I would have to add “deb http://php53.dotdeb.org oldstable all deb-src http://php53.dotdeb.org oldstable all” in the sources.list. Am I right?
Thank you for all your effort Guillaume!!!
I am running Debian 5.
Source list has: deb http://php53.dotdeb.org lenny all deb-src http://php53.dotdeb.org lenny all
After apt-get update/upgrade I am noticing these:
Unable to load dynamic library ‘/usr/lib/php5/20090626/pam_auth.so’ - /usr/lib/php5/20090626/pam_auth.so: cannot open shared object file: No such file or directory in Unknown on line 0 Unable to load dynamic library ‘/usr/lib/php5/20090626/sasl.so’ - /usr/lib/php5/20090626/sasl.so: cannot open shared object file: No such file or directory in Unknown on line 0 Unable to load dynamic library ‘/usr/lib/php5/20090626/uuid.so’ - /usr/lib/php5/20090626/uuid.so: cannot open shared object file: No such file or directory in Unknown on line 0 Unable to load dynamic library ‘/usr/lib/php5/20090626/xmlrpc.so’ - /usr/lib/php5/20090626/xmlrpc.so: cannot open shared object file: No such file or directory in Unknown on line 0
Any clue in how to install missing dynamic library?
Thanks.
Hi Friends,
I have Debian Lenny installed and working as apache server and i have thousands of sites hosted on this server. i have php5 5.2 version installed and wanted to upgrade my php5 to 5.3 version. to upgrade my php5 i your steps given in your post above
Now i am getting this result while running the below command:
apt-get dist-upgrade
“Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following packages will be REMOVED: libapache2-mod-php5 php-pear php5 php5-cgi php5-cli php5-curl php5-gd php5-idn php5-imagick php5-imap php5-ldap php5-mcrypt php5-mhash php5-mysql php5-odbc php5-pgsql php5-sqlite php5-xmlrpc The following NEW packages will be installed: automake liblqr-1-0 libonig2 libqdbm14 php5-suhosin The following packages have been kept back: mysql-client php5-dev The following packages will be upgraded: mysql-common php5-common php5-xdebug 3 upgraded, 5 newly installed, 18 to remove and 2 not upgraded. Need to get 1567kB of archives. After this operation, 25.7MB disk space will be freed. Do you want to continue [Y/n]?”
If i run the another below command the result is different:
“aptittude safe-upgrade or apt-get upgrade”
Result: “Reading package lists… Done Building dependency tree Reading state information… Done Reading extended state information Initializing package states… Done Reading task descriptions… Done Resolving dependencies… Resolving dependencies… The following packages have been kept back: libapache2-mod-php5 mysql-client php-pear php5 php5-cgi php5-cli php5-common php5-curl php5-dev php5-gd php5-imagick php5-imap php5-ldap php5-mcrypt php5-mysql php5-odbc php5-pgsql php5-sqlite php5-xdebug php5-xmlrpc The following packages will be upgraded: mysql-common 1 packages upgraded, 0 newly installed, 0 to remove and 20 not upgraded. Need to get 76.4kB of archives. After unpacking 28.7kB will be freed. Do you want to continue? [Y/n/?]”
Anyone can suggest me what to do on this upgradation process. the server is my production server and very critical. Please suggest me a suitable solution to upgrade my php5.
Thanks in avcance,
@mahi_nix : Dotdeb does not provide any Lenny packages anymore. We provide packages for Debian stable, aka “Squeeze”. My advice :
Hi Guillaume Plessis,
Thanks for your quick responce.
I cant upgrade my whole debian lenny in squeeze because it is my production server and has thousands of websites hosted. the will be the issue in the hosted application if i will upgrade it in squeeze. i only has an option to migrate the server on newly installed debian squeeze. i checked with debian lenny repository and i did not find php5 5.3 version on debian lenny repository. so thats why i wanted to upgrade it from other repos like dotdeb. i checked many forums and post and i found that i can upgrade it by following the same steps which you have posted in your post. Please check the below reference link and suggest me on the same.
Ref:
Thank You,