Я тестирую PHP7 и испытываю странную проблему после недавнего обновления. SimpleXML должен быть включен по умолчанию, а моя страница phpinfo
показывает, что он доступен:
Однако функции недоступны:
<?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
И модуль не указан как загруженный:
~ $ php -m [PHP Modules] calendar Core ctype curl ... Reflection session shmop sockets SPL standard sysvmsg sysvsem sysvshm tokenizer Zend OPcache zlib
Кто-нибудь знает, есть ли обходной путь для этого?
Информация о версии:
~ $ 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
У меня была такая же проблема, и я использую Ubuntu 15.10.
В моем случае, чтобы решить эту проблему, я установил пакет php7.0-xml с помощью диспетчера пакетов Synaptic, который включает SimpleXml. Итак, после перезагрузки моего сервера Apache моя проблема была решена. Этот пакет появился в версии Debian, и вы можете найти его здесь: https://packages.debian.org/sid/php7.0-xml .
Для всех тех, кто использует Ubuntu с ppa:ondrej/php
PPA, это устранит проблему:
apt install php7.0-mbstring php7.0-zip php7.0-xml
(см. https://launchpad.net/~ondrej/+archive/ubuntu/php )
Спасибо @Alexandre Barbosa за это!
EDIT 20160423:
Один-лайнер для устранения этой проблемы:
sudo add-apt-repository -y ppa:ondrej/php && sudo apt update && sudo apt install -y php7.0-mbstring php7.0-zip php7.0-xml
(это добавит ppa, упомянутое выше, и также обязательно будет иметь последнюю версию php. Мы используем PHPppa Ondřej в течение почти двух лет, и это работает как шарм)
Для Ubuntu 14.04 с
PHP 7.0.13-1 + deb.sury.org ~ trusty + 1 (cli) (NTS)
sudo apt-get install php-xml
работал на меня.
Я использую Bash для Windows (Ubuntu 16.04), и я только что установил с php7.0-xml, и теперь все работает для требований PHP Symfony 3.2.7.
sudo apt-get install php7.0-xml
Для Alpine (в докере) вы можете использовать apk add php7-simplexml
.
—————— в centos ————————-
yum provides php-xml
yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
Как правило, в системах Debian у вас есть другая конфигурация PHP для CLI, а для PHP – как Apache. Ваша страница phpinfo может очень хорошо показать, что simplexml включен с помощью веб-сервера, в то время как он не включен через CLI.