ฉันกำลังลองตัวอย่างบริการเว็บง่ายๆและฉันพบข้อผิดพลาดนี้แม้ว่าฉันจะไม่แสดงความคิดเห็น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.dll
phpinfo();
อีกครั้งและตรวจสอบว่าคุณเห็นภาพคล้ายกับภาพด้านบนในทางตรงกันข้ามถ้านี้ไม่ได้แก้ปัญหาของคุณคุณอาจต้องการที่จะตรวจสอบความต้องการสำหรับสบู่ที่นี่ นอกจากนี้ในส่วนความคิดเห็นคุณสามารถค้นหาคำแนะนำที่ดีเกี่ยวกับการเชื่อมต่อกับ 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