Ich teste PHP7 und habe nach einem kürzlich durchgeführten Update ein seltsames Problem. SimpleXML sollte standardmäßig aktiviert sein und meine phpinfo
Seite zeigt, dass es verfügbar ist:
Die Funktionen sind jedoch nicht verfügbar:
<?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
Und das Modul ist nicht als geladen aufgeführt:
~ $ php -m
[PHP Modules]
calendar
Core
ctype
curl
...
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
Weiß jemand, ob es dafür eine Problemumgehung gibt?
Versions Information:
~ $ 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
phpinfo()
Seite geht hervor, dass sich SimpleXML nur im Abschnitt "Modulautoren" befindet. Was Ihnen nur sagt, wer es geschrieben hat; Das bedeutet nicht, dass es installiert oder geladen ist. Wenn dies der einzige Ort ist, an dem es angezeigtphpinfo()
wird, bedeutet dies vermutlich, dass es nicht installiert ist.Antworten:
Ich hatte das gleiche Problem und verwende Ubuntu 15.10.
In diesem Fall habe ich zur Lösung dieses Problems das Paket php7.0-xml mithilfe des Synaptic-Paketmanagers installiert, der SimpleXml enthält. Nach dem Neustart meines Apache-Servers wurde mein Problem behoben. Dieses Paket wurde in der Debian-Version geliefert und ist hier zu finden: https://packages.debian.org/sid/php7.0-xml .
quelle
Für alle, die Ubuntu mit
ppa:ondrej/php
PPA verwenden, wird das Problem dadurch behoben:apt install php7.0-mbstring php7.0-zip php7.0-xml
(Siehe https://launchpad.net/~ondrej/+archive/ubuntu/php )
Vielen Dank an @Alexandre Barbosa für diesen Hinweis!
EDIT 20160423:
Einzeiler zur Behebung dieses Problems:
sudo add-apt-repository -y ppa:ondrej/php && sudo apt update && sudo apt install -y php7.0-mbstring php7.0-zip php7.0-xml
(Dies fügt den oben angegebenen ppa hinzu und stellt auch sicher, dass Sie immer das neueste PHP haben. Wir verwenden Ondřejs PHP ppa seit fast zwei Jahren und es funktioniert wie ein Zauber)
quelle
Für Ubuntu 14.04 mit
PHP 7.0.13-1 + deb.sury.org ~ trusty + 1 (cli) (NTS)
arbeitete für mich.
quelle
Für Alpine (im Docker) können Sie verwenden
apk add php7-simplexml
.Wenn das bei Ihnen nicht funktioniert, können Sie ausführen
apk add --no-cache php7-simplexml
. Dies ist der Fall, wenn Sie den Paketindex nicht zuerst aktualisieren.quelle
docker restart <container_name>
, damit diese Änderungen funktionieren.apk add --no-cache php7-simplexml
. Sie benötigen die--no-cache
Flagge, wenn Sie nichtapk update
zuerst laufen .Ich verwende Bash unter Windows (Ubuntu 16.04) und habe es gerade mit php7.0-xml installiert. Jetzt funktioniert alles für die Symfony 3.2.7 PHP-Anforderungen.
sudo apt-get install php7.0-xml
quelle
------------------ in Centos -------------------------
Finden Sie heraus, welches Paket PHP-XML enthält:
Wählen Sie dann aus der Ausgabeliste die entsprechende aus und installieren Sie sie
yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
quelle
yum provides
Befehl dem Benutzer hilft, das richtige Paket für jede installierte Version von PHP zu finden. Es ist nicht erforderlich, den vollständigen Paketnamen imyum install
Befehl zu verwenden.Da Google mich hierher geführt hat, funktioniert dies unter Ubuntu 20.04 im Jahr 2020:
sudo apt install php7.4-xml
Denken Sie bei Apache2 an einen Neustart (wahrscheinlich nicht erforderlich):
quelle
Hatte das gleiche Problem unter AWS Linux 2, zeigt phpinfo (), dass SimpleXML installiert ist, aber nicht funktioniert. Unter cmd wurde mein Problem behoben
quelle
Normalerweise haben Sie auf Debian-Systemen unterschiedliche PHP-Konfigurationen für CLI und für PHP, die beispielsweise als Apache-Modul ausgeführt werden. Auf Ihrer PHP-Info-Seite wird möglicherweise Simplexml als über den Webserver aktiviert angezeigt, während es nicht über die CLI aktiviert ist.
quelle
Installieren Sie für Ubuntu 18.04 und php7.3 php7.3-xml sudo apt-get install php7.3-xml
Dadurch wird die erforderliche Simplex-Datei installiert
quelle
meine Erfahrung
Holen Sie sich Ihre PHP-Version
PHP - Version
Instal-Paket für Ihre PHP-Version
sudo apt-get install php7.4-xml
Starten Sie Apache neu
sudo systemctl apache2 neu laden
quelle