Erreur fatale: classe «SoapClient» introuvable

202

J'essaie un exemple de service Web simple et j'obtiens cette erreur même si je n'ai pas commenté extension=php_soap.dllle php.inifichier:

Erreur fatale: classe «SoapClient» introuvable dans C: \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ server.php sur la ligne 2

Figen Güngör
la source
3
Êtes-vous sûr d'avoir modifié Apache / bin / php.ini et redémarré apache après cela ??
Shubham
Je vous remercie. En apparence, j'ai changé un autre fichier php.ini. J'ai trouvé celui dans le fichier Apache.
Figen Güngör
sudo apt-get install php7.0 pour ceux d'entre vous qui ne l'ont pas encore installé
FoxMcCloud

Réponses:

353

Diagnostiquer

Recherchez les éléments suivants dans votre fichier de script

phpinfo();

Si vous ne trouvez pas l' Soap Clientensemble enabledcomme ça: la façon dont le savon devrait apparaître dans phpinfo ()

Réparer

Procédez comme suit:

  1. Localisez php.inidans votre dossier apache bin, c'est à direApache/bin/php.ini
  2. Supprimer le ;depuis le début deextension=php_soap.dll
  3. Redémarrez votre serveur Apache
  4. Recherchez à phpinfo();nouveau votre et vérifiez si vous voyez une image similaire à celle ci-dessus
  5. Si vous le faites, le problème est résolu!

D'un autre côté, si cela ne résout pas votre problème, vous voudrez peut-être vérifier les exigences pour SOAP ici . Dans la section des commentaires, vous trouverez également de bons conseils sur la connexion à https.

Morgan Wilde
la source
12
N'oubliez pas de décommenter également cette ligne: ;extension=php_openssl.dll si le WSDL que vous essayez d'atteindre est sous protocole https
juliangonzalez
dans mon cas, il n'a pas été installé et il n'y a pas d'extension = php_soap.dll dans le php.in um en utilisant php5.6 centos6.9
zero8
7
J'utilise xamp et juste sans commentaires extension=soapfaire l'affaire.
SAMPro
3
sudo apt-get install php7.0-soap pour ceux d'entre vous qui ne l'ont pas encore installé
FoxMcCloud
1
Pour moi, la SoapClientclasse est toujours introuvable. Je le vois activé dans phpinfo (), l'extension est activée, openssl est également activé, tout va bien mais la classe n'est pas trouvée. J'utilise Wampserver 3.0 et PHP 5.6 et j'ai redémarré Apache mais ne résout pas le problème. Veuillez aider.
Eve
149

Pour installer SOAP en PHP-7, exécutez la commande suivante dans votre terminal Ubuntu:

sudo apt-get install php7.0-soap

Pour installer SOAP en PHP-7.1, exécutez la commande suivante dans votre terminal Ubuntu:

sudo apt-get install php7.1-soap

Pour installer SOAP en PHP-7.2 exécutez ce qui suit dans votre terminal Ubuntu:

sudo apt-get install php7.2-soap

Pour installer SOAP en PHP-7.3 exécutez ce qui suit dans votre terminal Ubuntu:

sudo apt-get install php7.3-soap
Nahid
la source
11
Assurez-vous également d'exécuter sudo service apache2 reload
Steve Obbayi
9
Dans mon cas, c'étaitsudo apt-get install php-soap
dhcgn
j'avais mis à niveau vers php7 et j'avais oublié de réinstaller php70w-soap (je supprime toujours complètement l'ancienne version de PHP)
zzapper
1
Que faire si je veux installer php7.3-soap :-)? Je suis perdu.
chris
@chris avez-vous essayé:sudo apt-get install php7.2-soap
Nahid
21

Pour AWS (RHEL):

sudo yum install php56-soap

(56 voici 5.6 version PHP - mettez votre version ici).

OZ_
la source
3
C'est possible sudo yum install php56w-soap! J'ai oublié le w, et cela s'installe, et cela n'a toujours pas fonctionné. Il a fallu un certain temps pour comprendre cela, mais maintenant cela fonctionne.
SPRBRN du
1
Pour moi, c'était sudo apt-get install php5.6-soap
Sukeshini
1
Pas besoin de version, juste du php-soap
ampachts
15

Pour installer SOAP en PHP5.6 exécutez ce qui suit dans votre terminal Ubuntu 14.04:

sudo apt-get install php5.6-soap
service php5.6-fpm restart
service apache2 restart

Vérifiez si SOAP a été activé:

php -m

(Vous devriez voir SOAP entre le texte renvoyé.)

Jasom Dotnet
la source
11

Je devais courir

php-config --configure-options --enable-soap 

en tant que root et redémarrez apache.

Ça a marché! Mon appel phpinfo () affiche maintenant la section SOAP.

MayTheSForceBeWithYou
la source
1
rebootdoit être mentionné que son redémarrage apache, pas le redémarrage du serveur.
machineaddict
8

Je ne trouvais pas la SOAPsection phpinfo()dedans donc j'ai dû l'installer.

Pour plus d'informations, l' SOAPextension nécessite l' libxmlextension PHP. Cela signifie que la transmission --enable-libxmlest également requise selon http://php.net/manual/en/soap.requirements.php

Depuis le panneau WHM

  1. Logiciels »Installateurs de modules» PHP Extensions & Applications Package
  2. Installez SOAP 0.13.0

    AVERTISSEMENT: "pear / HTTP_Request" est déconseillé au profit de "pear / HTTP_Request2"

    installez ok: channel: //pear.php.net/SOAP-0.13.0

  3. Installez HTTP_Request2 (facultatif)

    installez ok: channel: //pear.php.net/HTTP_Request2

  4. Services de redémarrage »Serveur HTTP (Apache)

De la commande shell

1. installer SOAP

2. redémarrage

RafaSashi
la source
L'interface EasyApache de WHM a également une option pour activer Soap dans la liste des options exhaustives.
Andrew
8

J'ai résolu ce problème sur PHP 7.0.22-0ubuntu0.16.04.1 nginx

sudo apt-get install php7.0-soap

sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx
Nanhe Kumar
la source
3

Pour Docker * ajoutez cette ligne:

RUN apt-get update && \
    apt-get install -y libxml2-dev && \
    docker-php-ext-install soap

*: Pour les images basées sur Debian, c.-à-d. ne fonctionnera pas pour les variantes alpines.

Attila Fulop
la source
1

Pour les utilisateurs XAMPP , ouvrez le php.inifichier situé dans C:/xampp/phpet supprimez le ;depuis le début de extension=soap. Redémarrez ensuite Apache et c'est tout!

Jakub Adamec
la source
0

Vous devez hériter de la nusoap.phpclasse et la mettre dans votre répertoire de projet, vous pouvez la télécharger depuis Internet .

Utilisez ce code:

require_once('nusoap.php');
Wondie
la source
2
NuSoap crée un service Web (serveur). La question initiale est pour consommer un WebService (client), donc il n'y a aucune relation entre NuSoap et le problème mentionné
Carlos B. Feitoza Filho
peut-être que vous pensiez à quelque chose au moment de travailler avec nusoap, c'est pourquoi vous avez cemment évoqué cela.
zero8
"L'Internet."
Attila Fulop
0

Sur Centos 7.8 et PHP 7.3

yum install php-soap
service httpd restart
PJunior
la source