치명적인 오류 : 'SoapClient'클래스를 찾을 수 없습니다


202

간단한 웹 서비스 예제를 사용하려고하는데 파일 extension=php_soap.dll에서 주석 처리를 제거했지만이 오류가 발생 php.ini합니다.

치명적인 오류 : 2 행의 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ server.php에 'SoapClient'클래스가 없습니다.


3
Apache / bin / php.ini를 편집하고 그 후에 아파치를 다시 시작하겠습니까?
Shubham

감사합니다. 적절하게도 다른 php.ini 파일을 변경했습니다. 아파치 파일에서 찾았습니다.
Figen Güngör

sudo apt-get 아직 설치하지 않은 분들을 위해 php7.0을 설치하십시오
FoxMcCloud

답변:


353

진단

스크립트 파일에서 다음을 찾으십시오.

phpinfo();

당신이 그렇게 Soap Client설정을 찾을 수없는 경우 enabled: 비누가 phpinfo ()에 나타나는 방식

고치다

다음을 수행하십시오.

  1. 찾아 php.ini당신의 아파치 bin 폴더, 즉Apache/bin/php.ini
  2. ;의 시작 부분에서 제거extension=php_soap.dll
  3. Apache 서버를 다시 시작하십시오.
  4. phpinfo();다시 찾아서 위의 사진과 비슷한 사진이 있는지 확인하십시오
  5. 그렇게하면 문제가 해결됩니다!

반면에 문제가 해결되지 않으면 여기에서 SOAP 요구 사항 을 확인 하십시오 . 또한 의견 섹션에서 https 연결에 대한 유용한 조언을 찾을 수 있습니다.


12
또한 주석이 라인을 잊지 말라 : ;extension=php_openssl.dll 당신이 도달하려고하는 WSDL은 HTTPS 프로토콜 미만인 경우
juliangonzalez

내 경우는 설치되지 않은 및 음 php5.6의 centos6.9를 사용하여 php.in에는 확장 = php_soap.dll가 없다
zero8

7
나는 xamp를 사용하고 있으며 주석 extension=soap처리를 제거 하는 것이 트릭입니다.
SAMPro

3
sudo apt-get install php7.0-soap 아직 설치하지 않은 분들을 위해 설치
FoxMcCloud

1
나를 위해, SoapClient수업은 여전히 ​​찾을 수 없습니다. phpinfo ()에서 활성화되어 있고 확장 기능이 활성화되어 있으며 openssl도 활성화되어 있으며 모든 것이 정상이지만 클래스를 찾을 수 없습니다. Wampserver 3.0과 PHP 5.6을 사용하고 Apache를 다시 시작했지만 문제가 해결되지 않습니다. 도와주세요.
Eve 이브

149

PHP-7에 SOAP를 설치하려면 Ubuntu 터미널에서 다음을 실행하십시오.

sudo apt-get install php7.0-soap

PHP-7.1에서 SOAP를 설치하려면 Ubuntu 터미널에서 다음을 실행하십시오.

sudo apt-get install php7.1-soap

PHP-7.2에 SOAP를 설치하려면 Ubuntu 터미널에서 다음을 실행하십시오.

sudo apt-get install php7.2-soap

PHP-7.3에 SOAP를 설치하려면 Ubuntu 터미널에서 다음을 실행하십시오.

sudo apt-get install php7.3-soap

11
또한 sudo는 서비스 아파치를 다시로드 실행해야합니다
스티브 Obbayi

9
내 경우에는sudo apt-get install php-soap
dhcgn

나는 php7로 업그레이드했고 php70w-soap을 다시 설치하는 것을 잊었다 (나는 항상 이전 버전의 PHP를 제거한다)
zzapper

1
php7.3-soap :-)를 설치하려면 어떻게해야합니까? 나는 길을 잃었다.
chris

@ chris 당신이 시도 :sudo apt-get install php7.2-soap
Nahid

21

AWS (RHEL)의 경우 :

sudo yum install php56-soap

(여기 56은 5.6 PHP 버전입니다-여기에 버전을 넣으십시오).


3
이 수도 있습니다 sudo yum install php56w-soap! 나는 w를 잊어 버렸고 이것이 설치되었지만 여전히 작동하지 않습니다. 이것을 알아내는 데 시간이 걸렸지 만 이제는 작동합니다.
SPRBRN

1
나를 위해 그것은 sudo apt-get install php5.6-soap
Sukeshini

1
php-soap 버전이 필요 없음
ampachts

15

PHP5.6에서 SOAP를 설치하려면 Ubuntu 14.04 터미널에서 다음을 실행하십시오.

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

SOAP가 사용 가능한지 확인하십시오.

php -m

(반환 된 텍스트 사이에 SOAP가 표시되어야합니다.)


11

나는 달렸다

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

루트로 아파치를 다시 시작하십시오.

작동했습니다! 이제 내 phpinfo () 호출에 SOAP 섹션이 표시됩니다.


1
reboot서버 재부팅이 아닌 아파치 재부팅이라고 언급해야합니다.
machineaddict

8

내가 찾을 수 couln'tSOAP 섹션에서 phpinfo()내가 설치했다 있도록.

정보 SOAP확장을 위해서는 libxmlPHP 확장이 필요합니다 . 이것은 http://php.net/manual/en/soap.requirements.php--enable-libxml 에 따라 전달 해야 함을 의미합니다 .

WHM 패널에서

  1. 소프트웨어»모듈 설치 프로그램»PHP Extensions & Applications Package
  2. SOAP 0.13.0 설치

    경고 : "pear / HTTP_Request2"를 위해 "pear / HTTP_Request"가 더 이상 사용되지 않습니다.

    설치 확인 : channel : //pear.php.net/SOAP-0.13.0

  3. HTTP_Request2 설치 (선택 사항)

    설치 확인 : channel : //pear.php.net/HTTP_Request2

  4. 서비스 다시 시작»HTTP 서버 (Apache)

쉘 명령에서

1. 배 설치 SOAP

2. 재부팅


WHM의 EasyApache 인터페이스에는 Exhaustive Options 목록에 Soap을 활성화하는 옵션도 있습니다.
앤드류

8

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

Docker *의 경우 다음 줄을 추가하십시오.

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

* : 데비안 기반 이미지의 경우. 알파인 변형에서는 작동하지 않습니다.


1

들어 XAMPP 사용자 , 열린 php.ini파일에있는 C:/xampp/php및 제거 ;의 시작부터 extension=soap. 그런 다음 Apache를 다시 시작하면됩니다.


0

nusoap.php클래스 를 상속 받아 프로젝트 디렉토리에 넣으면 인터넷 에서 다운로드 할 수 있습니다 .

이 코드를 사용하십시오 :

require_once('nusoap.php');

2
NuSoap은 웹 서비스 (서버)를 만듭니다. WebService에 (클라이언트), 그래서 NuSoap과 같은 문제점 사이에 관계가없는 소비를위한 초기 문제는
카를로스 B. Feitoza 필류

아마도 당신은 nusoap으로 작업 할 때 무언가를 생각하는 곳에서 이것을 비난했습니다.
zero8

"인터넷."
Attila Fulop

0

Centos 7.8 및 PHP 7.3에서

yum install php-soap
service httpd restart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.