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

Figen Güngör
sumber
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.

Morgan Wilde
sumber
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
Nahid
sumber
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).

ONS_
sumber
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.)

Jasom Dotnet
sumber
11

Saya harus lari

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

sebagai root dan restart apache.

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

MayTheSForceBeWithYou
sumber
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

RafaSashi
sumber
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
Nanhe Kumar
sumber
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.

Attila Fulop
sumber
1

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

Jakub Adamec
sumber
0

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

Gunakan kode ini:

require_once('nusoap.php');
Wondie
sumber
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
PJunior
sumber