Próbuję prostego przykładu usługi sieci Web i pojawia się ten błąd, mimo że odkomentowałem extension=php_soap.dll
w php.ini
pliku:
Błąd krytyczny: nie znaleziono klasy „SoapClient” w C: \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ server.php w linii 2
php
soap
fatal-error
Figen Güngör
źródło
źródło
Odpowiedzi:
Rozpoznać chorobę
Sprawdź następujące elementy w pliku skryptu
Jeśli nie możesz znaleźć takiego
Soap Client
zestawuenabled
:Naprawić
Wykonaj następujące czynności:
php.ini
w folderze bin Apache , tjApache/bin/php.ini
;
początekextension=php_soap.dll
phpinfo();
ponownie i sprawdź, czy widzisz zdjęcie podobne do powyższegoZ drugiej strony, jeśli to nie rozwiąże problemu, możesz tutaj sprawdzić wymagania dotyczące SOAP . Również w sekcji komentarzy można znaleźć dobre porady na temat łączenia się z https.
źródło
;extension=php_openssl.dll
jeśli WSDL, do którego próbujesz dotrzeć, jest objęte protokołem httpsextension=soap
.SoapClient
nadal nie znaleziono klasy. Widzę, że jest włączony w phpinfo (), rozszerzenie jest włączone, openssl jest również włączony, wszystko jest w porządku, ale nie znaleziono klasy. Używam Wampserver 3.0 i PHP 5.6 i zrestartowałem Apache, ale nie rozwiązałem problemu. Proszę pomóż.Aby zainstalować SOAP w PHP-7, uruchom w terminalu Ubuntu:
Aby zainstalować SOAP w PHP-7.1, uruchom w terminalu Ubuntu:
Aby zainstalować SOAP w PHP-7.2, uruchom w terminalu Ubuntu:
Aby zainstalować SOAP w PHP-7.3, uruchom w terminalu Ubuntu:
źródło
sudo apt-get install php-soap
sudo apt-get install php7.2-soap
W przypadku AWS (RHEL):
(56 tutaj to wersja PHP 5.6 - umieść tutaj swoją wersję).
źródło
sudo yum install php56w-soap
! Zapomniałem w, a to instaluje, a mimo to nie działało. Długo to zrozumiałem, ale teraz działa.Aby zainstalować SOAP w PHP5.6, uruchom w terminalu Ubuntu 14.04:
Sprawdź, czy protokół SOAP został włączony:
(Powinieneś zobaczyć SOAP między zwróconym tekstem.)
źródło
Musiałem biec
jako root i uruchom ponownie apache.
To się udało! Teraz moje wywołanie phpinfo () pokazuje sekcję SOAP.
źródło
reboot
należy wspomnieć, że jego restart Apache, a nie restart serwera.Nie mogę znaleźć tej
SOAP
sekcji,phpinfo()
więc musiałem ją zainstalować.Aby uzyskać informacje,
SOAP
rozszerzenie wymagalibxml
rozszerzenia PHP. Oznacza to, że przekazywanie danych--enable-libxml
jest również wymagane zgodnie z http://php.net/manual/en/soap.requirements.phpZ panelu WHM
Zainstaluj SOAP 0.13.0
OSTRZEŻENIE: „pear / HTTP_Request” jest przestarzałe na korzyść „pear / HTTP_Request2”
zainstaluj ok: channel: //pear.php.net/SOAP-0.13.0
Zainstaluj HTTP_Request2 (opcjonalnie)
zainstaluj ok: channel: //pear.php.net/HTTP_Request2
Uruchom ponownie usługi »Serwer HTTP (Apache)
Z polecenia powłoki
1. gruszka zainstaluj SOAP
2. uruchom ponownie
źródło
Rozwiązałem ten problem na PHP 7.0.22-0ubuntu0.16.04.1 nginx
źródło
W przypadku Dockera * dodaj ten wiersz:
*: Dla obrazów opartych na Debianie, tj. nie będzie działać w przypadku wariantów alpejskich.
źródło
W przypadku użytkowników XAMPP otwórz
php.ini
plik znajdujący się wC:/xampp/php
i usuń;
od początkuextension=soap
. Następnie uruchom ponownie Apache i to wszystko!źródło
Musisz odziedziczyć
nusoap.php
klasę i umieścić ją w katalogu projektu, możesz pobrać ją z Internetu .Użyj tego kodu:
źródło
Na Centos 7.8 i PHP 7.3
źródło