web-dev-qa-db-fra.com

Erreur fatale: La classe 'SoapClient' est introuvable.

J'essaie un exemple de service Web simple et j'obtiens cette erreur même si j'ai décommenté extension=php_soap.dll dans le fichier php.ini:

Erreur fatale: La classe 'SoapClient' ne figure pas dans C:\Program Files (x86)\EasyPHP-5.3.9\www\server.php à la ligne 2

165
Figen Güngör

Diagnostiquer

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

phpinfo();

Si vous ne trouvez pas Soap Client défini sur enabled comme ceci: the way soap should appear in phpinfo()

Réparer

Faites ce qui suit:

  1. Localisez php.ini dans votre dossier bin Apache, c.-à-d. Apache/bin/php.ini
  2. Supprimer le ; du début de extension=php_soap.dll
  3. Redémarrez votre serveur Apache
  4. Recherchez à nouveau votre phpinfo(); 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 pouvez vérifier les exigences pour SOAP ici . Vous trouverez également dans la section commentaire de bons conseils sur la connexion à https.

286
Morgan Wilde

Pour installer SOAP dans PHP-7, procédez comme suit dans votre terminal Ubuntu:

Sudo apt-get install php7.0-soap

Pour installer SOAP dans PHP-7.1, procédez comme suit dans votre terminal Ubuntu:

Sudo apt-get install php7.1-soap

Pour installer SOAP dans PHP-7.2, procédez comme suit dans votre terminal Ubuntu:

Sudo apt-get install php7.2-soap
105
Nahid

Pour AWS (RHEL):

Sudo yum install php56-soap

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

20
OZ_

Pour installer SOAP sous PHP 5.5, exécutez les opérations suivantes sur votre terminal Ubuntu 14.04:

Sudo apt-get install php5.6-soap
service php5.6-fpm restart
service Apache2 restart

Voir si SOAP était activé:

php -m

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

13
Jasom Dotnet

Je devais courir 

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

en tant que root et redémarrez Apache.

Ça a marché! Maintenant, mon appel phpinfo () affiche la section SOAP.

10

Je (n'ai pas trouvé} _ la section SOAP dans phpinfo() et j'ai donc dû l'installer.

Pour information, l'extension SOAP nécessite l'extension libxml PHP. Cela signifie que le passage de --enable-libxml est également requis selon http://php.net/manual/en/soap.requirements.php

Du panneau WHM

  1. Logiciels »Installateurs» PHP Extensions & Applications Package
  2. Installer SOAP 0.13.0

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

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

  3. Installer HTTP_Request2 (facultatif)

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

  4. Redémarrer les services »Serveur HTTP (Apache)

De la commande Shell

1.pear installer SOAP

2re pied

7
RafaSashi

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
7
Nanhe Kumar

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'est-à-dire. ne fonctionnera pas pour les variantes Alpine.

0
Attila Fulop

Vous devez hériter de la classe nusoap.php et la placer dans votre répertoire de projet. Vous pouvez la télécharger à partir de Internet .

Utilisez ce code:

require_once('nusoap.php');
0
Wondie