I'm testing PHP7, and have a weird issue after a recent update. SimpleXML should be enabled by default, and my phpinfo
page shows that it is available:
However, the functions are not available:
<?php
if (function_exists('simplexml_load_file')) {
echo "simpleXML functions are available.<br />\n";
} else {
echo "simpleXML functions are not available.<br />\n";
}
// result-- NOT available
And the module isn't listed as loaded:
~ $ php -m
[PHP Modules]
calendar
Core
ctype
curl
...
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
Anyone know if there's a workaround for this?
Version info:
~ $ php -v
PHP 7.0.3-8+deb.sury.org~trusty+2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Typically on Debian systems you have different PHP configuration for CLI and for PHP running as say an Apache module. Your phpinfo page may very well show simplexml as being enabled via web server, while it is not enabled via CLI.
For all those using Ubuntu with
ppa:ondrej/php
PPA this will fix the problem:apt install php7.0-mbstring php7.0-zip php7.0-xml
(see https://launchpad.net/~ondrej/+archive/ubuntu/php)
Thanks @Alexandre Barbosa for pointing this out!
EDIT 20160423:
One-liner to fix this issue:
(this will add the ppa noted above and will also make sure you always have the latest php. We use Ondřej's PHP ppa for almost two years now and it's working like charm)
For Alpine (in docker), you can use
apk add php7-simplexml
.If that doesn't work for you, you can run
apk add --no-cache php7-simplexml
. This is in case you aren't updating the package index first.I'm using Bash on Windows (Ubuntu 16.04) and I just installed with php7.0-xml and all is working now for the Symfony 3.2.7 PHP requirements.
For Ubuntu 14.04 with
PHP 7.0.13-1+deb.sury.org~trusty+1 (cli) ( NTS )
worked for me.
------------------in centos-------------------------
find out which package provides php-xml:
then from the output list,select the appropriate one, install