Kesalahan fatal: Kelas 'SoapClient' tidak ditemukan


202

Saya mencoba contoh layanan web yang sederhana dan saya mendapatkan kesalahan ini meskipun saya membatalkan komentar extension=php_soap.dlldalam php.inifile:

Kesalahan fatal: Kelas 'SoapClient' tidak ditemukan di C: \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ server.php on line 2


3
Apakah Anda yakin telah mengedit Apache / bin / php.ini dan memulai kembali apache setelah itu ??
Shubham

Terima kasih. Terlihat jelas, saya mengubah file php.ini lain. Saya menemukan satu di file Apache.
Figen Güngör

sudo apt-get install php7.0 bagi Anda yang belum menginstalnya
FoxMcCloud

Jawaban:


353

Mendiagnosis

Cari yang berikut di dalam file skrip Anda

phpinfo();

Jika Anda tidak dapat Soap Clientmengaturnya enabledseperti itu: cara sabun muncul di phpinfo ()

Memperbaiki

Lakukan hal berikut:

  1. Temukan php.inidi folder apache bin Anda, YaituApache/bin/php.ini
  2. Hapus ;dari awalextension=php_soap.dll
  3. Mulai ulang server Apache Anda
  4. Lihat phpinfo();lagi dan periksa apakah Anda melihat gambar yang sama dengan yang di atas
  5. Jika Anda melakukannya, masalah terpecahkan!

Di sisi lain jika ini tidak menyelesaikan masalah Anda, Anda mungkin ingin memeriksa persyaratan untuk SOAP di sini . Juga di bagian komentar Anda dapat menemukan saran bagus tentang menghubungkan ke https.


12
Jangan lupa juga batalkan komentar pada baris ini: ;extension=php_openssl.dll jika WSDL yang ingin Anda jangkau berada di bawah protokol https
juliangonzalez

dalam kasus saya itu tidak diinstal dan tidak ada ekstensi = php_soap.dll di php.in um menggunakan php5.6 centos6.9
zero8

7
Saya menggunakan xamp dan hanya uncommenting extension=soapmelakukan trik.
SAMPro

3
sudo apt-get install php7.0-soap untuk anda yang belum menginstalnya
FoxMcCloud

1
Bagi saya, SoapClientkelasnya masih belum ditemukan. Saya melihatnya diaktifkan di phpinfo (), ekstensi diaktifkan, openssl diaktifkan juga, semuanya ok tapi kelas tidak ditemukan. Saya menggunakan Wampserver 3.0 dan PHP 5.6 dan saya me-restart Apache tetapi tidak menyelesaikan masalah. Tolong bantu.
Eve

149

Untuk menginstal SOAP di PHP-7 jalankan yang berikut di terminal Ubuntu Anda:

sudo apt-get install php7.0-soap

Untuk menginstal SOAP di PHP-7.1 jalankan sebagai berikut di terminal Ubuntu Anda:

sudo apt-get install php7.1-soap

Untuk menginstal SOAP di PHP-7.2 jalankan sebagai berikut di terminal Ubuntu Anda:

sudo apt-get install php7.2-soap

Untuk menginstal SOAP di PHP-7.3 jalankan sebagai berikut di terminal Ubuntu Anda:

sudo apt-get install php7.3-soap

11
Pastikan juga menjalankan sudo service apache2 reload
Steve Obbayi

9
Dalam kasus saya itusudo apt-get install php-soap
dhcgn

saya telah memutakhirkan ke php7 dan lupa menginstal ulang php70w-soap (saya selalu benar-benar menghapus versi PHP lama)
zzapper

1
Apa yang harus saya lakukan jika saya ingin menginstal php7.3-soap :-)? Saya tersesat.
chris

@ Chris Anda coba:sudo apt-get install php7.2-soap
Nahid

21

Untuk AWS (RHEL):

sudo yum install php56-soap

(56 di sini adalah versi 5.6 PHP - letakkan versi Anda di sini).


3
Ini mungkin sudo yum install php56w-soap! Saya lupa w, dan ini menginstal, dan masih tidak berhasil. Butuh beberapa saat untuk memikirkan hal ini tetapi sekarang berhasil.
SPRBRN

1
Bagi saya itu sudo apt-get install php5.6-soap
Sukeshini

1
Tidak perlu versi, cukup php-soap
ampachts

15

Untuk menginstal SOAP di PHP5.6, jalankan perintah berikut di terminal Ubuntu 14.04 Anda:

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

Lihat apakah SOAP diaktifkan:

php -m

(Anda harus melihat SOAP di antara teks yang dikembalikan.)


11

Saya harus lari

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

sebagai root dan restart apache.

Itu berhasil! Sekarang panggilan phpinfo () saya menunjukkan bagian SOAP.


1
rebootharus disebutkan bahwa apache-nya reboot, bukan server reboot.
machineaddict

8

Aku couln't menemukan yang SOAPbagian diphpinfo() jadi saya harus menginstalnya.

Sebagai informasi, SOAPekstensi membutuhkan libxmlekstensi PHP. Ini berarti bahwa lewat --enable-libxmljuga diperlukan sesuai dengan http://php.net/manual/en/soap.requirements.php

Dari panel WHM

  1. Perangkat Lunak »Pemasang Modul» Paket Ekstensi & Aplikasi PHP
  2. Instal SOAP 0.13.0

    PERINGATAN: "pir / HTTP_Request" tidak digunakan lagi karena "pear / HTTP_Request2"

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

  3. Pasang HTTP_Request2 (opsional)

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

  4. Mulai Ulang Layanan »HTTP Server (Apache)

Dari perintah shell

1.pear instal SABUN

2. boot ulang


Antarmuka EasyApache WHM juga memiliki opsi untuk mengaktifkan Sabun di daftar Opsi Lengkap.
Andrew

8

Saya memecahkan masalah ini di 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

3

Untuk Docker * tambahkan baris ini:

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

*: Untuk gambar berbasis debian, mis. tidak akan bekerja untuk varian alpine.


1

Untuk pengguna XAMPP , buka php.inifile yang terletak di C:/xampp/phpdan hapus ;dari awal extension=soap. Kemudian restart Apache dan hanya itu!


0

Anda harus mewarisi nusoap.phpkelas dan memasukkannya ke direktori proyek Anda, Anda dapat mengunduhnya dari Internet .

Gunakan kode ini:

require_once('nusoap.php');

2
NuSoap membuat Layanan Web (server). Pertanyaan awal adalah untuk mengkonsumsi WebService (klien), sehingga tidak ada hubungan antara NuSoap dan masalah yang disebutkan
Carlos B. Feitoza Filho

mungkin Anda di mana memikirkan sesuatu pada saat bekerja dengan nusoap itu sebabnya Anda cemmented ini.
nol8

"Internet."
Attila Fulop

0

Pada Centos 7.8 dan PHP 7.3

yum install php-soap
service httpd restart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.