Önemli hata: 'SoapClient' sınıfı bulunamadı


203

Basit bir web hizmeti örneği deniyorum extension=php_soap.dllve php.inidosyada uncommented olmasına rağmen bu hatayı alıyorum :

Önemli hata: 'SoapClient' sınıfı C: \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ server.php satır 2'de bulunamadı


3
Apache / bin / php.ini dosyasını düzenlediğinizden ve bundan sonra apache'yi yeniden başlattığınızdan emin misiniz ??
Shubham

Teşekkür ederim. Görünüşe göre, başka bir php.ini dosyasını değiştirdim. Birini Apache dosyasında buldum.
Figen Güngör

henüz yüklememiş olanlar için sudo apt-get install php7.0
FoxMcCloud

Yanıtlar:


355

Teşhis koymak

Betik dosyanızın içinde aşağıdakilere bakın

phpinfo();

Beğenmek için Soap Clientayarlanmış bulamazsanız enabled: phpinfo () 'da sabunun görünmesi

Fix

Aşağıdakileri yapın:

  1. Bulun php.inisizin de apache bin klasöründe, IeApache/bin/php.ini
  2. Kaldır ;başından itibarenextension=php_soap.dll
  3. Apache sunucunuzu yeniden başlatın
  4. phpinfo();Tekrar bak ve yukarıdaki resme benzer bir resim görüp görmediğini kontrol et
  5. Eğer yaparsanız, sorun çözüldü!

Öte yandan, bu sorununuzu çözmezse, burada SOAP gereksinimlerini kontrol etmek isteyebilirsiniz . Ayrıca yorum bölümünde https'ye bağlanma konusunda iyi tavsiyeler bulabilirsiniz.


12
Bu satırı da uncomment unutmayın: ;extension=php_openssl.dll ulaşmaya çalıştığınız WSDL https protokolü altında ise
juliangonzalez

benim durumumda yüklü değildi ve php5.6 kullanarak php.in um hiçbir uzantısı = php_soap.dll yoktur centos6.9
zero8

8
Ben xamp kullanıyorum ve sadece extension=soaphile yapmak uncommenting .
SAMPro

3
henüz yüklememiş olanlar için sudo apt-get install php7.0-soap
FoxMcCloud

1
Benim için, SoapClientSınıf hala bulunamadı. Ben phpinfo () etkin görmek, uzantısı etkin, openssl de etkin, her şey yolunda ama sınıf bulunamadı. Wampserver 3.0 ve PHP 5.6 kullanıyorum ve Apache'yi yeniden başlattım ancak sorunu çözmüyor. Lütfen yardım et.
Eve

149

PHP-7'de SOAP kurmak için Ubuntu terminalinizde aşağıdaki komutu çalıştırın:

sudo apt-get install php7.0-soap

PHP-7.1'de SOAP kurmak için Ubuntu terminalinizde aşağıdakileri çalıştırın:

sudo apt-get install php7.1-soap

PHP-7.2'de SOAP kurmak için Ubuntu terminalinizde aşağıdakileri çalıştırın:

sudo apt-get install php7.2-soap

PHP-7.3'e SOAP yüklemek için Ubuntu terminalinizde aşağıdakileri çalıştırın:

sudo apt-get install php7.3-soap

11
Ayrıca sudo service apache2
reload'u

9
Benim durumumdasudo apt-get install php-soap
dhcgn

Ben php7 yükseltilmiş ve php70w-soap (i her zaman tamamen eski PHP sürümünü kaldırmak) yeniden unutmuştu
zzapper

1
Php7.3-soap :-) yüklemek istersem ne yapmam gerekir? Kayboldum.
chris

@chris denediniz mi:sudo apt-get install php7.2-soap
Nahid

21

AWS (RHEL) için:

sudo yum install php56-soap

(56 burada 5.6 PHP sürümüdür - sürümünüzü buraya koyun).


3
Bu olabilir sudo yum install php56w-soap! W'yi unuttum ve bu kuruluyor ve hala işe yaramadı. Bunu anlamak biraz zaman aldı ama şimdi işe yarıyor.
SPRBRN

1
Benim için sudo apt-get install php5.6-soap
Sukeshini


15

PHP5.6'da SOAP kurmak için Ubuntu 14.04 terminalinizde aşağıdakileri çalıştırın:

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

SOAP'ın etkin olup olmadığına bakın:

php -m

(Döndürülen metin arasında SABUN görmelisiniz.)


11

Koşmalıydım

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

root olarak yeniden başlatın ve apache'yi yeniden başlatın.

İşe yaradı! Şimdi phpinfo () çağrım SOAP bölümünü gösteriyor.


1
rebootsunucu yeniden önyükleme değil, apache yeniden önyükleme belirtilmelidir.
machineaddict

8

Ben bulmak couln'tSOAP bölümünde phpinfo()bunu yüklemek zorunda.

Ek bilgi için SOAPeklenti libxmlPHP eklentisi gerektirir . Bu --enable-libxml, http://php.net/manual/en/soap.requirements.php'ye göre içeri aktarmanın da gerekli olduğu anlamına gelir.

WHM panelinden

  1. Yazılım »Modül Yükleyiciler» PHP Uzantıları ve Uygulamaları Paketi
  2. SOAP 0.13.0'ı yükleyin

    UYARI: "armut / HTTP_Request", "armut / HTTP_Request2" lehine kullanımdan kaldırıldı

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

  3. HTTP_Request2'yi yükle (isteğe bağlı)

    install ok: kanal: //pear.php.net/HTTP_Request2

  4. Hizmetleri Yeniden Başlat »HTTP Sunucusu (Apache)

Kabuk komutundan

1. armut yüklemek SOAP

2.reboot


WHM'nin EasyApache arabirimi ayrıca Kapsamlı Seçenekler listesinde Sabun etkinleştirme seçeneğine de sahiptir.
Andrew

8

PHP 7.0.22-0ubuntu0.16.04.1 nginx üzerinde bu sorunu çözdüm

sudo apt-get install php7.0-soap

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

3

Docker * için bu satırı ekleyin:

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

*: Debian tabanlı görüntüler için, yani. alpin varyantları için çalışmaz.


1

XAMPP kullanıcıları için php.iniiçindeki dosyayı açın ve başlangıcını C:/xampp/phpkaldırın . Sonra Apache'yi yeniden başlatın ve hepsi bu!;extension=soap


0

nusoap.phpSınıfı devralmanız ve proje dizininize koymanız gerekir, internetten indirebilirsiniz .

Bu kodu kullanın:

require_once('nusoap.php');

2
NuSoap bir Web Hizmeti (sunucu) oluşturur. İlk soru bir WebService (istemci) tüketmek içindir, bu nedenle NuSoap ile söz konusu sorun arasında bir ilişki yoktur
Carlos B. Feitoza Filho

belki de nusoap ile çalıştığınız sırada bir şeyler düşünürken siz de bu yüzden bunu söylediniz.
zero8

"İnternet."
Attila Fulop

0

Centos 7.8 ve PHP 7.3 üzerinde

yum install php-soap
service httpd restart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.