Schwerwiegender Fehler: Klasse 'SoapClient' nicht gefunden


202

Ich versuche ein einfaches Webdienstbeispiel und erhalte diesen Fehler, obwohl ich extension=php_soap.dllin der php.iniDatei einen Kommentar abgegeben habe :

Schwerwiegender Fehler: Die Klasse 'SoapClient' wurde in Zeile 2 in C: \ Programme (x86) \ EasyPHP-5.3.9 \ www \ server.php nicht gefunden


3
Sind Sie sicher, dass Sie Apache / bin / php.ini bearbeitet und Apache danach neu gestartet haben?
Shubham

Danke dir. Anscheinend habe ich eine andere php.ini-Datei geändert. Ich habe die in der Apache-Datei gefunden.
Figen Güngör

sudo apt-get install php7.0 für diejenigen unter euch, die es noch nicht installiert haben
FoxMcCloud

Antworten:


353

Diagnostizieren

Schlagen Sie Folgendes in Ihrer Skriptdatei nach

phpinfo();

Wenn Sie nicht finden können, um Soap Clientso zu enabledmögen: die Art und Weise, wie Seife in phpinfo () erscheinen sollte

Fix

Mach Folgendes:

  1. Suchen Sie php.iniin Ihrem Apache Bin-Ordner, d. H.Apache/bin/php.ini
  2. Entfernen Sie die ;von Anfang anextension=php_soap.dll
  3. Starten Sie Ihren Apache-Server neu
  4. Schauen Sie noch phpinfo();einmal nach und prüfen Sie, ob Sie ein ähnliches Bild wie oben sehen
  5. Wenn Sie dies tun, ist das Problem gelöst!

Wenn dies Ihr Problem jedoch nicht löst, können Sie hier die Anforderungen für SOAP überprüfen . Auch im Kommentarbereich finden Sie gute Tipps zum Herstellen einer Verbindung zu https.


12
Vergessen Sie nicht, auch diese Zeile zu ;extension=php_openssl.dll
kommentieren

in meinem Fall wurde es nicht installiert und es gibt keine Erweiterung = php_soap.dll in der php.in um mit php5.6 centos6.9
zero8

7
Ich benutze xamp und mache einfach den Kommentar extension=soap.
SAMPro

3
sudo apt-get install php7.0-soap für diejenigen unter euch, die es noch nicht installiert haben
FoxMcCloud

1
Für mich ist die SoapClientKlasse immer noch nicht gefunden. Ich sehe es in phpinfo () aktiviert, die Erweiterung ist aktiviert, openssl ist ebenfalls aktiviert, alles ist in Ordnung, aber die Klasse wird nicht gefunden. Ich verwende Wampserver 3.0 und PHP 5.6 und habe Apache neu gestartet, aber das Problem nicht gelöst. Bitte helfen Sie.
Eva

149

Um SOAP in PHP-7 zu installieren, führen Sie Folgendes in Ihrem Ubuntu-Terminal aus:

sudo apt-get install php7.0-soap

Um SOAP in PHP-7.1 zu installieren, führen Sie Folgendes in Ihrem Ubuntu-Terminal aus:

sudo apt-get install php7.1-soap

Um SOAP in PHP-7.2 zu installieren, führen Sie Folgendes in Ihrem Ubuntu-Terminal aus:

sudo apt-get install php7.2-soap

Um SOAP in PHP-7.3 zu installieren, führen Sie Folgendes in Ihrem Ubuntu-Terminal aus:

sudo apt-get install php7.3-soap


9
In meinem Fall war essudo apt-get install php-soap
dhcgn

Ich hatte ein Upgrade auf PHP7 durchgeführt und vergessen, PHP70W-Seife neu zu installieren (ich entferne immer die alte Version von PHP vollständig)
Zzapper

1
Was tun, wenn ich php7.3-soap installieren möchte :-)? Ich bin verloren.
Chris

@chris haben Sie versucht:sudo apt-get install php7.2-soap
Nahid

21

Für AWS (RHEL):

sudo yum install php56-soap

(56 hier ist 5.6 PHP-Version - geben Sie Ihre Version hier ein).


3
Das könnte sein sudo yum install php56w-soap! Ich habe das w vergessen und es wird installiert und trotzdem hat es nicht funktioniert. Es hat eine Weile gedauert, um das herauszufinden, aber jetzt funktioniert es.
SPRBRN

1
Für mich war es sudo apt-get install php5.6-soap
Sukeshini

1
Keine Notwendigkeit für Version, nur PHP-Seife
Ampachten

15

Um SOAP in PHP5.6 zu installieren, führen Sie Folgendes in Ihrem Ubuntu 14.04-Terminal aus:

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

Überprüfen Sie, ob SOAP aktiviert war:

php -m

(Sie sollten SOAP zwischen zurückgegebenem Text sehen.)


11

Ich musste rennen

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

als root und Apache neu starten.

Das hat funktioniert! Jetzt zeigt mein Aufruf von phpinfo () den SOAP-Abschnitt.


1
rebootsollte erwähnt werden, dass sein Apache-Neustart, nicht Server-Neustart.
Machineaddict

8

Ich konnte den SOAPAbschnitt nicht finden,phpinfo() also musste ich ihn installieren.

Zur Information SOAPbenötigt die libxmlErweiterung die PHP-Erweiterung. Dies bedeutet, dass eine Weitergabe --enable-libxmlauch gemäß erforderlich ist http://php.net/manual/en/soap.requirements.php

Vom WHM-Panel

  1. Software »Modulinstallationsprogramme» PHP-Erweiterungen und Anwendungspaket
  2. Installieren Sie SOAP 0.13.0

    WARNUNG: "pear / HTTP_Request" ist zugunsten von "pear / HTTP_Request2" veraltet.

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

  3. Installieren Sie HTTP_Request2 (optional)

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

  4. Dienste neu starten »HTTP-Server (Apache)

Vom Shell-Befehl

1.pear SOAP installieren

2. neu starten


Die EasyApache-Oberfläche von WHM bietet auch eine Option zum Aktivieren von Soap in der Liste der umfassenden Optionen.
Andrew

8

Ich habe dieses Problem unter PHP 7.0.22-0ubuntu0.16.04.1 nginx gelöst

sudo apt-get install php7.0-soap

sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx

3

Für Docker * fügen Sie diese Zeile hinzu:

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

*: Für Debian-basierte Bilder, dh. funktioniert nicht für alpine Varianten.


1

Öffnen Sie für XAMPP-Benutzer die php.iniDatei in C:/xampp/phpund entfernen Sie die ;am Anfang von extension=soap. Dann starte Apache neu und das wars!


0

Sie müssen die nusoap.phpKlasse erben und in Ihr Projektverzeichnis stellen. Sie können sie aus dem Internet herunterladen .

Verwenden Sie diesen Code:

require_once('nusoap.php');

2
NuSoap erstellt einen Webdienst (Server). Die erste Frage ist, einen WebService (Client) zu konsumieren, daher gibt es keine Beziehung zwischen NuSoap und dem genannten Problem
Carlos B. Feitoza Filho

Vielleicht haben Sie im Moment der Arbeit mit Nusoap etwas gedacht, deshalb haben Sie dies gedacht.
Null8

"Das Internet."
Attila Fulop

0

Auf Centos 7.8 und PHP 7.3

yum install php-soap
service httpd restart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.