Categories
PHP

PHP 5.3.1 packages for Debian “Lenny” : they’re here!

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.

SpeedHog

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 😉

95 replies on “PHP 5.3.1 packages for Debian “Lenny” : they’re here!”

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.

If I was unclear, I meant that the init script that is provided references /usr/local/bin/php-fpm as the command to run but that does not exist, after fixing that I simply cannot get php5-fpm to run. The previous package on php53.dotdeb.org ran just fine with the old style php-fpm patched php-cgi. So out of the box the init script is broken and afaikt the php-fpm binaries are also broken.

Nope, no solution. I guess the php5-fpm in the dotdeb packages arent stable right now. So I’ll wait for an update or if I have to compile my own packages.

@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

# 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:

1. sudo apt-get source php5
2. sudo apt-get build-deb php5
==> apache2-prefork-dev libaprutil1-dev libdb4.7-dev should remove
==>libdb4.6-dev will add
then … I use
3. sudo dpkg-buildpackage -rfakeroot
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
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.0
dpkg-buildpackage: source changed by Guillaume Plessis
dpkg-buildpackage: host architecture amd64
dpkg-checkbuilddeps: Unmet build dependencies: apache2-prefork-dev
dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: warning: (Use -d flag to override.)

Nothing happend 🙁

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 –includedir`
cat: 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.

I got a dep error:
php5-cgi: Depends: libicu38 (>= 3.8-5) which is a virtual package.
I tried apt-get install libicu38: not found.
Then tried apt-get install libicu42 which worked but still get the dep error for php5-cgi.

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

you are right, error is in my install.
$ php -v
PHP 5.3.1 (cli) (built: Nov 30 2009 13:44:04)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

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.

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

@Xeross : this happened with the early PHP 5.3.0 packages. It has been fixed with the last packages. Which precise version are you using?
Could you send us a piece of code that can help us reproduce this issue?

@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

Why on earth does this require the installation of Apache in all its bloated glory? I can’t possibly be the only one here using Lighttpd.

Does it really require apache? If you do apt-get install php5-common php5-cgi php5-cli as I usually do – Apache shouldn’t be installed. I think it’s just the default if you just apt-get install php5.

Spiffy quick reply, JAE. I was looking at an apt-get upgrade (and dist-upgrade when the packages were kept back) like a dolt. At a glance, the new packages appear to be working without a hitch. Thanks for the heads up.

@Guillame: A little peculiar dist-upgrade wanted the metapackage since I didn’t install that in the first place. Either way, I’m happy. Thanks for your work.

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 2

Hey,

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 😛

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

Im finding a issue with a couple of modules:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/adodb.so’ – /usr/lib/php5/20090626/adodb.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/apc.so’ – /usr/lib/php5/20090626/apc.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.2-0.dotdeb.2 with Suhosin-Patch (cli) (built: Apr 20 2010 21:52:53)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.31, Copyright (c) 2007-2010, by SektionEins GmbH

@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/

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.

You can edit those files with deprecated lines and change ‘#’ with ‘//’ and install imagick via apt-get install php5-imagick.

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.

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 :
* First of all, use a decent package manager, such as aptitude, synaptic or dselect). They’ll help you knowing why some packages are kept/removed/upgraded….
* Be sure to use the right sources.list (e.g. pointing to Squeeze), without Dotdeb for a start
* Upgrade to Squeeze
* Add Dotdeb to your sources.list
* Upgrade your PHP and MySQL packages using Dotdeb

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:
1. http://www.debiantutorials.com/how-to-install-upgrade-to-php-5-3-on-debian-lenny/#comments

2) http://mtehrani30.blogspot.in/2011/07/debian-lenny-update-php-52-to-53.html

Thank You,

Comments are closed.