ฉันกำลังลองตัวอย่างบริการเว็บง่ายๆและฉันพบข้อผิดพลาดนี้แม้ว่าฉันจะไม่แสดงความคิดเห็นextension=php_soap.dllในphp.iniไฟล์:
ข้อผิดพลาดร้ายแรง:ไม่พบคลาส 'SoapClient' ในไฟล์ C: \ Program (x86) \ EasyPHP-5.3.9 \ www \ server.php ที่บรรทัด 2
ฉันกำลังลองตัวอย่างบริการเว็บง่ายๆและฉันพบข้อผิดพลาดนี้แม้ว่าฉันจะไม่แสดงความคิดเห็นextension=php_soap.dllในphp.iniไฟล์:
ข้อผิดพลาดร้ายแรง:ไม่พบคลาส 'SoapClient' ในไฟล์ C: \ Program (x86) \ EasyPHP-5.3.9 \ www \ server.php ที่บรรทัด 2
คำตอบ:
วินิจฉัย
ค้นหาสิ่งต่อไปนี้ภายในไฟล์สคริปต์ของคุณ
phpinfo();
หากคุณไม่สามารถSoap Clientตั้งค่าให้เป็นenabledเช่นนั้น:

แก้ไข
ทำดังต่อไปนี้:
php.iniในโฟลเดอร์apache bin ของคุณเช่นApache/bin/php.ini;จากจุดเริ่มต้นของextension=php_soap.dllphpinfo();อีกครั้งและตรวจสอบว่าคุณเห็นภาพคล้ายกับภาพด้านบนในทางตรงกันข้ามถ้านี้ไม่ได้แก้ปัญหาของคุณคุณอาจต้องการที่จะตรวจสอบความต้องการสำหรับสบู่ที่นี่ นอกจากนี้ในส่วนความคิดเห็นคุณสามารถค้นหาคำแนะนำที่ดีเกี่ยวกับการเชื่อมต่อกับ https
;extension=php_openssl.dll ใส่เครื่องหมายความคิดเห็นในบรรทัดนี้: หาก WSDL ที่คุณพยายามเข้าถึงนั้นอยู่ภายใต้โปรโตคอล https
extension=soapไม่แสดงข้อคิดเห็นทำเคล็ดลับ
SoapClientยังไม่พบชั้นเรียน ฉันเห็นมันเปิดใช้งานใน phpinfo () ส่วนขยายถูกเปิดใช้งาน openssl ถูกเปิดใช้งานด้วยทุกอย่างก็โอเค แต่ไม่พบคลาส ฉันใช้ Wampserver 3.0 และ PHP 5.6 และฉันเริ่ม Apache ใหม่ แต่ไม่ได้แก้ปัญหา กรุณาช่วย.
ในการติดตั้ง SOAP ใน PHP-7 ให้รันดังต่อไปนี้ในเทอร์มินัล Ubuntu ของคุณ:
sudo apt-get install php7.0-soap
ในการติดตั้ง SOAP ใน PHP-7.1 ให้รันดังต่อไปนี้ในเทอร์มินัล Ubuntu ของคุณ:
sudo apt-get install php7.1-soap
ในการติดตั้ง SOAP ใน PHP-7.2 ให้รันดังต่อไปนี้ในเทอร์มินัล Ubuntu ของคุณ:
sudo apt-get install php7.2-soap
ในการติดตั้ง SOAP ใน PHP-7.3 ให้รันดังต่อไปนี้ในเทอร์มินัล Ubuntu ของคุณ:
sudo apt-get install php7.3-soap
sudo apt-get install php-soap
sudo apt-get install php7.2-soap
สำหรับ AWS (RHEL):
sudo yum install php56-soap
(56 ที่นี่คือ 5.6 PHP เวอร์ชัน - ใส่รุ่นของคุณที่นี่)
sudo yum install php56w-soap! ฉันลืม w และการติดตั้งนี้และยังคงไม่ทำงาน ใช้เวลาสักพักกว่าจะคิดออก แต่ตอนนี้มันใช้งานได้
ในการติดตั้ง SOAP ใน PHP5.6 ให้รันดังต่อไปนี้ในเทอร์มินัล Ubuntu 14.04 ของคุณ:
sudo apt-get install php5.6-soap
service php5.6-fpm restart
service apache2 restart
ดูว่าเปิดใช้งาน SOAP:
php -m
(คุณควรเห็น SOAP ระหว่างข้อความที่ส่งคืน)
ฉันต้องวิ่ง
php-config --configure-options --enable-soap
เป็น root และเริ่ม apache ใหม่
นั่นได้ผล! ตอนนี้การเรียก phpinfo () ของฉันแสดงส่วน SOAP
rebootควรกล่าวถึงว่ารีบูต apache ไม่ใช่รีบูตเซิร์ฟเวอร์
ผมcouln't พบSOAPส่วนในphpinfo()เพื่อให้ฉันได้ติดตั้ง
สำหรับข้อมูลSOAPส่วนขยายต้องการlibxmlส่วนขยาย PHP ซึ่งหมายความว่า--enable-libxmlจำเป็นต้องมีการส่งผ่านตามhttp://php.net/manual/en/soap.requirements.php
จากแผง WHM
ติดตั้ง SOAP 0.13.0
คำเตือน: "pear / HTTP_Request" ถูกคัดค้าน "pear / HTTP_Request2"
ติดตั้ง ok: channel: //pear.php.net/SOAP-0.13.0
ติดตั้ง HTTP_Request2 (ไม่บังคับ)
ติดตั้ง ok: channel: //pear.php.net/HTTP_Request2
บริการเริ่มต้นใหม่»เซิร์ฟเวอร์ HTTP (Apache)
จากคำสั่งเชลล์
1. แพร์ติดตั้ง SOAP
2.reboot
ฉันแก้ไขปัญหานี้ใน 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
สำหรับ Docker * เพิ่มบรรทัดนี้:
RUN apt-get update && \
apt-get install -y libxml2-dev && \
docker-php-ext-install soap
*: สำหรับภาพที่ใช้เดเบียนเช่น จะไม่ทำงานสำหรับตัวแปรอัลไพน์
สำหรับผู้ใช้ XAMPPเปิดphp.iniไฟล์ที่อยู่ในC:/xampp/phpและลบจากจุดเริ่มต้นของ; extension=soapจากนั้นเริ่มต้น Apache ใหม่และนั่นแหละ!
คุณจะต้องสืบทอดnusoap.phpระดับและวางไว้ในไดเรกทอรีโครงการของคุณคุณสามารถดาวน์โหลดได้จากอินเทอร์เน็ต
ใช้รหัสนี้:
require_once('nusoap.php');
บน Centos 7.8 และ PHP 7.3
yum install php-soap
service httpd restart