Categories
PHP

PHP 7.0.8 for Jessie

On June 23rd 2016, the PHP group published PHP 7.0.8.

This is a security release. Several security bugs were fixed in this release. All PHP 7.0 users are encouraged to upgrade to this version.

Please also note that bcmatch, dba, mbstring, soap, xml and zip now have their separate dedicated packages.

Packages of PHP 7.0.8 are now available for Debian 8 “Jessie” on amd64 and i386 architectures, along with the following PECL extensions : APCu, APCu_bc, geoip, igbinary, imagick, memcached, mongodb, msgpack, redis, ssh2 and xdebug (Careful, PHP 7 support from some of them is still very young!).

As usual :

73 replies on “PHP 7.0.8 for Jessie”

I am currently provisioning a lot of virtual machines and the last one got this version. There is an error with xdebug :

Setting up php7.0-xdebug (1:2.4.0-1~dotdeb+8.1) …
WARNING: Module xdebug ini file doesn’t exist under /etc/php/7.0/mods-available
WARNING: Module xdebug ini file doesn’t exist under /etc/php/7.0/mods-available
Processing triggers for libc-bin (2.19-18+deb8u4) …
Processing triggers for systemd (215-17+deb8u4) …
Processing triggers for php7.0-fpm (7.0.8-1~dotdeb+8.1) …

Hi.
We have a problem after this update with imagick and geoip.
ini files are not created in /etc/php/7.0/mods-available, this files located in /etc/php/mods-available and this file does not exists /etc/php/7.0/apache2/conf.d/20-imagick.ini

Enabling modules does not work:
phpenmod imagick
WARNING: Module imagick ini file doesn’t exist under /etc/php/7.0/mods-available

Reinstalling after purge is the same.
With ssh2 ext would be exact same problem.

Please fix ini locations or so….

After upgrading to this release I get the error that the function mb_internal_encoding () is undefined.

There must be something wrong with this release.

Yeah, sorry, I just saw the hint that some functions like xml and mbstring are in separate packages now.
thanks anyway 🙂

It seems like you do compile php7 without XML support now (build in) this is very critical, since pecl expect xml to be build in.

when it runs any installation scripts, it uses php -n .. so not php.inis are parsed and no “not build in” modules are loaded.

This renders pecl completly broken.

Also see http://serverfault.com/a/612038

Two things to do after update (if you need these modules, they’re not included as usual) :
sudo apt-get install php7.0-mbstring
sudo apt-get install php7.0-xml

Hi Guillaume,

after the upgrade phpMyAdmin doesn’t work anymore. There is the error: PHP Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding()

Now I roll back to previous version and everything work again, do you suggest to wait before upgrading again?

Thank you for your help! 🙂

Ale

The solution:

install the following packages:
apt-get install php7.0-mbstring
apt-get install php7.0-xml
apt-get install php7.0-gd

and the restart Apache:
service apache2 restart

Now everything is ok! 🙂

Ale

Hello Guillaume,

Merci pour cette mise à jour 7.0.8.
Cependant, quand je tente de faire la mise à jour “aptitude safe-upgrade” comme d’habitude, j’ai les infos suivantes :

Les paquets suivants seront ENLEVÉS :
apache2{u} apache2-data{u} libqdbm14{u} php-readline{u} ssl-cert{u}
Les paquets suivants seront mis à jour :
libapache2-mod-php7.0 php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline

C’est la première fois que la mise à jour me propose de supprimer Apache 2, alors que pourtant le paquet libapache2-mod-php7.0 en dépend.

Est-ce une erreur de ma part (cela se reproduit sur mes 8 serveurs) ou est-ce un souci de dépendance lors de la compilation ?

Merci d’avance 🙂

Vincent

For me, an apt-get dist-upgrade breaks and it’s necessary to “apt-get install -f”.
I’m hoping there will be some new builds of these ….

Unpacking php7.0-xml (7.0.8-1~dotdeb+8.1) …
dpkg: error processing archive /var/cache/apt/archives/php7.0-xml_7.0.8-1~dotdeb+8.1_amd64.deb (–unpack):
trying to overwrite ‘/usr/lib/php/20151012/xsl.so’, which is also in package php7.0-xsl 7.0.6-1~dotdeb+8.1
Preparing to unpack …/php7.0-xsl_7.0.8-1~dotdeb+8.1_all.deb …

Just like mentioned by @Alexandre, I am having the same issue.

Unable to install/upgrade php 7 packages due to the change in path of “mods-available”. Can we expect a fix soon?

We had to run `apt-get -f install ` on all of our servers (which are under puppet control) to fix the missing xml package. Also we are unable to install pecl extensions due to the missing xml.

BUG
Application writed in Zend2

php-fpm7.0[8228]: segfault at 7ffcd4f8ffa0 ip 00007f0d50577b39 sp 00007ffcd4f8ff70 error 6 in php-fpm7.0[7f0d50318000+456000]

php-fpm with typo3 segfaults on each request:

*** Error in `php-fpm: pool www’: free(): invalid next size (fast): 0x000055ef4c8f0d10 ***
[28-Jun-2016 10:27:28] WARNING: [pool www] child 18398 exited on signal 6 (SIGABRT – core dumped) after 8.582213 seconds from start

apt-cache search mbstring
php7.0-mbstring – MBSTRING module for PHP

Question closed

I’ve got a slightly different problem here, I not yet using PHP7, still on 5.6 and when updating php-pear it now wants to pull in PHP7.

root@alfred:~# apt-get dist-upgrade -u
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following NEW packages will be installed:
php-cli php-common php-xml php7.0-cli php7.0-common php7.0-json php7.0-opcache
php7.0-readline php7.0-xml
The following packages will be upgraded:
php-pear
1 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,382 kB of archives.
After this operation, 10.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
root@alfred:~# apt-cache policy php-pear
php-pear:
Installed: 5.6.22+dfsg-0+deb8u1
Candidate: 1:1.10.1+submodules+notgz-8
Version table:
1:1.10.1+submodules+notgz-8 0
600 http://packages.dotdeb.org/ jessie/all amd64 Packages
*** 5.6.22+dfsg-0+deb8u1 0
500 http://security.debian.org/ jessie/updates/main amd64 Packages
100 /var/lib/dpkg/status
5.6.20+dfsg-0+deb8u1 0
500 http://debian.mirrors.ovh.net/debian/ jessie/main amd64 Packages

since the update i cant work with php7.0-zip. i always get the error “php7.0-zip : Depends: libzip2 (>= 0.11.2) but it is not installable”. Any way to fix this somehow?

@Guillaume : je n’avais pas le paquet apache2-mpm-prefork d’installé (même si le module était bien présent), c’est chose faite suite à ton message et depuis, il ne me propose plus de l’enlever 😉

Merci pour l’info, je peux passer en PHP 7.0.8 🙂

Not sure yet what this is related to, but I get the following errors on startup after the upgrade:

Jun 30 07:46:28 srv01 php-fpm7.0[8150]: [30-Jun-2016 07:46:28] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/20151012/mysqli.so’ – /usr/lib/php/20151012/mysqli.so: undefined symbol: mysqlnd_connect in Unknown on line 0
Jun 30 07:46:28 srv01 php-fpm7.0[8150]: [30-Jun-2016 07:46:28] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/20151012/pdo_mysql.so’ – /usr/lib/php/20151012/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0
Jun 30 07:46:28 srv01 php-fpm7.0[8150]: [30-Jun-2016 07:46:28] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/20151012/pdo_pgsql.so’ – /usr/lib/php/20151012/pdo_pgsql.so: undefined symbol: pdo_parse_params in Unknown on line 0

Could you please be so kind to recompile it against OpenSSL 1.0.2+?

The problem: Google’s policy decision made so that in order for HTTP2 to work, you need ALPN, which is only available on OpenSSL 1.0.2+. The problem is building your package from source fails for some reason, and your version compiled against OpenSSL 1.0.1 so we cannot use PHP7-FPM with HTTP2.

So, basically no luck having latest security library with latest HTTP2?

See, apt-get source php7.0 && apt-get build-dep php7.0 && debuild -us -uc -b fails.

Could you perhaps make 1 build and put it here? I’m sure many frustrated admins will be dying to download it.

Hello, thanks for your work but how I can remove PHP 7 from Debian Jessie? I need PHP 5.6 from the Debian repository.

What the F*CK happend to MYSQLI?
PHP Fatal error: Uncaught Error: Class ‘mysqli’ not found

Thank you for shit.

@What : FYI the included configuration files have been moved to /etc/php/7.0/fpm/conf.d/ between 7.0.7 and 7.0.8 (it is automatically handled by the post-installation script). If any *-mysqli.ini file is present in this directory and if it’s correct, then mysqli should be loaded.

It is apparently not your case, so could you please track any error while invoking php-fpm7.0 -m or php-fpm7.0 -i. Thanks.

@Stefan : sorry for the late answer. Could you please make sure that pdf, opcache and mysqlnd are being loaded first by using 10-*.ini files (instead of 20-*.ini) in /etc/php/7.0/cli/conf.d/. It should solve your issue.

@WHAT : here is the list you should have (with the corresponding priority in every file, according to its name):

/etc/php/7.0/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.0/cli/conf.d/10-opcache.ini,
/etc/php/7.0/cli/conf.d/10-pdo.ini,
/etc/php/7.0/cli/conf.d/20-calendar.ini,
/etc/php/7.0/cli/conf.d/20-ctype.ini,
/etc/php/7.0/cli/conf.d/20-exif.ini,
/etc/php/7.0/cli/conf.d/20-fileinfo.ini,
/etc/php/7.0/cli/conf.d/20-ftp.ini,
/etc/php/7.0/cli/conf.d/20-gettext.ini,
/etc/php/7.0/cli/conf.d/20-iconv.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-phar.ini,
/etc/php/7.0/cli/conf.d/20-posix.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini,
/etc/php/7.0/cli/conf.d/20-shmop.ini,
/etc/php/7.0/cli/conf.d/20-sockets.ini,
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.0/cli/conf.d/20-sysvsem.ini,
/etc/php/7.0/cli/conf.d/20-sysvshm.ini,
/etc/php/7.0/cli/conf.d/20-tokenizer.ini

As explained before, mysqlnd, pdf (not pdo_mysql) and opcache should have a priority of 10, and only them.

@WHAT : I’m glad that your issue has been fixed. Thanks for your feedback about breaking changes.

Let me just remind you – regarding your first comment – that using the f* and sh* words while asking for help is not the most efficient way to get some.

Have a safe trip home.

@Frank : this is caused by a too restrictive permission on php-pear. I’m working on a fix.

In the meantime, if you don’t need this particular package, you should uninstall it, it will solve your dependency issue.

Thank you! Couldn’t find them on your main profile page.
Will now investigate how you package extensions.

Have the same issue here. I want to stick with 5.6. But I am forced to update to 7 when using php-pear (via php-pear -> php-cli -> php7.0-cli). So I’m looking forward to your patch.

Hi Guillaume, thanks for all your work! Do you intend to build the Memcache extension for php7 (Memcache, not Memcached…)

Regards

Hi,

The -dbg package appears to be missing for 7.0.8+ because Debian have updated the package to:-

* Remove -dbg from control/control.in
* Updated debian/rules to use dh_strip –dbgsym-migration instead of –dbg-package (and removed the PHP_DBG variable)

You might want to revert those changes when building jessie packages so that the -dbg package is generated.

Thanks,
Kenny

Sorry for easy question. Where I find php.ini ? it’s correct /etc/php/7.0/fpm/php.ini ?

I increased max_input_vars to 10000 but reload php-fpm + ngnix and turn off and start VPS dont change error from log (piwigo administration sitemap plugin)

error ngnix log: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. ….

Comments are closed.