wrong order of PHP extensions after update
Miroslav Lachman
000.fbsd at quip.cz
Wed Jan 13 20:14:31 UTC 2016
I end up with wrong extension order in /usr/local/etc/php/extensions.ini
after each update of PHP by `pkg upgrade`.
It is caused by PECL extensions. PECL extensions are not updated (no
version change) so extensions.ini have them listed at the top.
# cat /usr/local/etc/php/extensions.ini
extension=intl.so
extension=dbase.so
extension=memcached.so
zend_extension=/usr/local/lib/php/20121212/xdebug.so
extension=xml.so
extension=session.so
extension=pdo.so
extension=mysql.so
extension=hash.so
extension=dom.so
extension=zlib.so
extension=zip.so
extension=xsl.so
extension=xmlwriter.so
extension=xmlreader.so
extension=tokenizer.so
extension=sqlite3.so
extension=sockets.so
extension=soap.so
extension=simplexml.so
extension=posix.so
extension=phar.so
extension=pdo_mysql.so
extension=openssl.so
zend_extension=/usr/local/lib/php/20121212/opcache.so
extension=mysqli.so
extension=mssql.so
extension=mcrypt.so
extension=mbstring.so
Then I got this error
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/local/lib/php/20121212/memcached.so' -
/usr/local/lib/php/20121212/memcached.so: Undefined symbol "ps_globals"
in Unknown on line 0
There are two ways to workaround it:
1) pkg install -f `pkg info -E pecl-\*`
2) manually edit extensions.ini and move them down
None of it is really a solution.
Do somebody have any idea how to universally solve it?
I think there must be some tool to automatically check and change order
of extensions after each update.
Or PECL extensions must have PORTREVISION bump on each PHP version
change. (there is one problem - PECL extensions are shared across
different PHP branches: php55, php56, php7)
Miroslav Lachman
More information about the freebsd-ports
mailing list