PHP에서 소켓 전송 "ssl"이 활성화되지 않음
PHP에서 소켓 전송 "ssl"을 활성화하는 데 문제가 있습니다. 스크립트를 실행할 때 오류가 발생합니다.
경고 : fsockopen () [function.fsockopen] : ssl : //www.my.site.com : 443에 연결할 수 없습니다 (소켓 전송 "ssl"을 찾을 수 없음-PHP를 구성 할 때 활성화하는 것을 잊었습니까? )
저는 Windows에서 IIS6을 실행 중이며 이것이 작동하도록 지금까지 시도한 것입니다.
- php.ini에서 php_openssl.dll 및 php_sockets.dll 확장의 주석 처리를 제거했습니다.
- PHP가 내가 변경 한 ini 파일을로드하고 있는지 확인했습니다 (그 것이고 확실히 다른 확장자를로드하고 있으므로 이것이 문제가 아니라고 확신합니다)
- php_openssl.dll 및 php_sockets.dll이 올바른 위치에 있는지 확인했습니다.
- ssleay32.dll 및 libeay32.dll을 기본 PHP 폴더, WINDOWS 폴더 및 WINDOWS / system32 폴더에 복사했습니다.
- Windows 경로 변수에 PHP의 위치가 포함되어 있는지 확인
- 모든 관련 파일에 대한 파일 권한이 올바른지 확인했습니다.
거의 모든 변경 후 IIS를 다시 시작했지만 운이 없었습니다. 내가 잘못하고 있다는 명백한 것이 있습니까? 어쨌든 작은 부분에서이 문제를 해결할 수 있습니까? (제거 과정을 통해 문제를 파악할 수 있도록 ...?)
안타깝게도 Windows / IIS는 제 전문 분야가 아닙니다. 다른 사람이 아무것도 아는 것 같지 않기 때문에 제가 담당했습니다.
Xampp 1.8.1 서버를 사용하여 명령 줄에서 PHP 5.4.0으로 Windows 7에서 문제가 발생했습니다. 이것이 내가 한 일입니다.
- 이름 바꾸기
php.ini-production
에php.ini
(C에서 : \ XAMPP \ PHP \ 폴더) - 편집
php.ini
하고 주석을 제거하십시오extension_dir=ext
. - 또한 주석을 제거하십시오
extension=php_openssl.dll
.
그 후 잘 작동했습니다.
성공!
로그 파일을 확인하고 php_openssl.dll에 대한 권한이 올바른지 확인한 후 경고를 검색하여 더 많은 시도를했습니다.
그래서 나는 :
- Windows 경로에 C : \ PHP \ ext 추가
- libeay32.dll 및 ssleay32.dll을 C : \ WINDOWS \ system32 \ inetsrv에 추가했습니다.
- 서버를 재부팅했습니다.
이 중 어느 것이 내 문제를 해결했는지 잘 모르겠지만 이제 확실히 해결되었습니다! :)
이 페이지에서 시도해 볼 수있는 작업을 찾았습니다. http://php.net/manual/en/install.windows.extensions.php
당신의 도움을 주셔서 감사합니다!
XAMPP 버전 1.7.4에서 서버에는 php ini 파일에 extension = php_openssl.dll 줄이 없습니다. php.ini 파일에 extension = php_openssl.dll을 추가해야합니다.
Laravel 4에서 SSL 암호화를 사용하여 이메일을 보내려는 동일한 문제가 발생했습니다.
Windows 7 64 비트에서 WAMPServer 2.2를 사용하면 php.ini에서 php_openssl 만 활성화하고 WAMPServer를 다시 시작하여 완벽하게 작동했습니다.
다음을 수행했습니다.
- WampServer-> PHP-> PHP 확장-> php_openssl을 클릭하십시오.
- WampServer 다시 시작
extension = php_openssl.dll의 주석 처리를 해제하면 Apache 서비스를 다시 시작하면 도움이됩니다.
나는 또한 laravel을 엉망으로 만드는 동안 방금이 문제에 직면했습니다.
Windows 용 wampserver를 사용하고 있으며 /bin/apache/apacheversion/bin/php.ini 파일을 /bin/php/phpversion/php.ini에 복사해야했습니다.
XAMPP를 사용하고 있는데 동일한 오류가 발생했습니다. 이 모든 단계를 수행하고 환경 변수 경로를 추가하고 dll의 모든 디렉토리를 / php, / apache / bin, / system32, / syswow64 등에 복사했지만 여전히이 오류가 발생했습니다.
그런 다음 아파치 오류 로그를 확인한 후 경로에 대괄호를 사용하는 문제를 발견했습니다.
PHP : 구문 오류, 예기치 않은 '('in C : \ Program Files (other) \ xampp \ php \ php.ini on line 707 0 서버 인증서에 서버 이름과 일치하는 ID가 포함되어 있지 않습니다.
"Program Files (x86)"디렉토리에 서버를 설치 한 경우 이스케이프 처리되지 않은 대괄호로 인해 동일한 오류가 발생할 수 있습니다.
이 문제를 해결하려면 php.ini 파일을 열고 "include_path"가 포함 된 줄을 찾은 다음 경로를 큰 따옴표로 묶어이 오류를 수정합니다.
include_path = "C : \ Program Files (기타) \ xampp \ php \ PEAR"
참조 URL : https://stackoverflow.com/questions/1705856/socket-transport-ssl-in-php-not-enabled
'programing' 카테고리의 다른 글
iPhone 용 오픈 소스 CoverFlow 라이브러리 (0) | 2021.01.18 |
---|---|
django-목록을 다시 쿼리 셋으로 변환 (0) | 2021.01.18 |
지난 7 일 동안 만 로그 파일을 보관하도록 log4j를 구성하는 방법은 무엇입니까? (0) | 2021.01.18 |
CurrentCulture, InvariantCulture, CurrentUICulture 및 InstalledUICulture의 차이점 (0) | 2021.01.18 |
오류 : Maven 컴파일 중 UTF8 인코딩에 매핑 할 수없는 문자 (0) | 2021.01.18 |