이 글에서는 PHP7에서 OpenSSL 확장 프로그램을 열지 못하는 문제에 대한 해결 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
최근에 Laravel 프레임워크를 배웠고 PHP의 OpenSSL 확장을 활성화해야 했습니다. 인터넷에서 여러 가지 방법을 시도했지만 실패했습니다. 드디어 오랜 시간 끝에 제 경험을 적어보겠습니다. 요약을 위해서.
다음은 제가 겪은 실패 경험입니다.
처음에는 인터넷에서 가장 널리 사용되는 방법을 사용했습니다.
1. 먼저 php.ini에 Extension=php_openssl.dll이 있는지 확인하세요. 있으면 이전 주석 문자를 삭제하세요. ";", 이 줄이 없으면 Extension=php_openssl.dll을 추가합니다.
2. PHP 디렉터리에 php_openssl.dll(파일은 ext 폴더에 있음), ssleay32.dll을 복사합니다. libeay32.dll을 windowssystem32 폴더로
3. 아파치를 다시 시작하세요.
이 시점에서 openssl 기능이 활성화됩니다.
물론 성공하지 못해서 계속해서 방법을 찾아봤습니다.
그러다가 Zhihu에서 같은 문제가 발생하는 것을 보고 나중에 해결하고 방법도 알려주셔서 시도해 보았습니다. .방법은 아래와 같습니다.
질문자는 win7 전용이라고 했고, 저는 win10 인데 혹시나 해서 시도해 봤습니다
그래도 여전히 안 되더라구요. 계속해서 방법을 찾아보았지만,
그 후에도 몇 가지 방법을 더 시도했지만 여전히 성공하지 못하다가 다른 사람 컴퓨터에서 시도해볼까 해서 친구 컴퓨터에서 시도해 보려고 앞에 댓글을 삭제했습니다. php.ini의 Extension=php_openssl.dll 세 파일이 복사되지 않고 Apache를 다시 시작하여 phpinfo, 성공, 성공을 한 번 실행했습니다. 이때 마음이 아팠는데 왜 안되나요? 계속할 수밖에 없었고 결국 두 컴퓨터의 PHP 구성 파일인 php.ini와 아파치 구성 파일인 http를 결합했습니다. .conf 비교해 보면 문제를 찾을 수 있기를 바랍니다. 마지막으로 약간의 차이점을 발견했습니다. LoadModule ssl_module module/mod_ssl.so는 내 http.conf에서 주석 처리되었지만 해당 항목은 주석 처리되지 않은 것을 발견했습니다. 즉시 주석을 제거하고 Apache를 다시 시작하고 phpinfo를 열고 OpenSSL을 검색하여 검색 기록 3개를 더 찾았지만 여전히 활성화되지 않습니다. 이 시점에서 나는 검색을 계속할 수밖에 없었고 마침내 성공했습니다.
최종적으로 성공한 방법은 다음과 같습니다.
php5를 php7로 업그레이드할 때 주의해야 할 몇 가지 문제에 대한 기사를 봤습니다. 그 중 하나가 바로 이것입니다.
Apache를 다시 시작할 때 컬이 발생한다고 보고했습니다. 그리고 openssl 확장 라이브러리를 로드하지 못했습니다.(아파치의 로그에 오류가 보고됩니다.)
libeay32.dll 및 ssleay32.dll 파일을 apachebin 디렉터리에 복사하여 교체한 다음 Apache를 다시 시작할 수 있습니다
다시 시도했는데 성공했습니다. 성공했으므로 성공적인 방법은 .ini의 openssl 확장에 대한 PHP 주석을 제거하고 위의 두 파일을 이동한 다음 Apache를 다시 시작하는 것입니다.
참고: apachebin 디렉터리에 두 파일을 복사할 때 원래 디렉터리에 두 파일을 미리 백업해 두는 것이 가장 좋습니다. 덮어쓰기 오류가 발생하면 Apache를 닫으면 됩니다.
사람마다 환경이 조금씩 다를 수 있으니 위 내용은 참고용입니다.
추천 학습: php 비디오 튜토리얼
위 내용은 PHP7이 OpenSSL 확장을 활성화하지 못하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!