天天看點

關于PHPMailer在win10的php7.0上運作報錯 [Extension missing: openssl] 的解決方案總結

使用郵件子產品PHPMailer時,由于使用了ssl驗證,是以需要在開啟php.ini配置檔案中開啟openssl.dll

;extension=php_openssl.dll ;這是php7的配置檔案
#extension=php_openssl.dll #這是php5的配置檔案
           

去掉行首的“;”或者“#”,改為:

extension=php_openssl.dll
           

But...問題來了,這是在php7上引入的子產品,修改了配置檔案儲存,重新開機Apache服務後,引用PHPMailer子產品的代碼仍然報錯:

Extension missing: openssl
           

 在代碼中使用echo檢視ssl庫的加載情況,顯示“未加載ssl”:

echo (extension_loaded('openssl')?'SSL loaded':'SSL not loaded'); 
           

在此聲明一下軟體環境:Win10、Apache2.4、PHP7.0

搜尋解決方案,未果。

就換了一個版本,在PHP5上重新引入,試了一下,竟然“郵件發送成功”。What!!!

查了一下為什麼php7在win10下不能成功加載ssl的問題,找到了這篇文章:

https://blog.csdn.net/mrzhouxiaofei/article/details/66974625

在此感謝這位部落客!引用一下這篇文章裡的重點:

看到一篇文章寫到php5更新到php7時需要注意的一些問題,其中有這麼一條:

重新開機Apache時,報curl和openssl的擴充庫加載失敗(apache的log會報錯),

可将libeay32.dll和ssleay32.dll檔案複制并替換到apache\bin目錄下,再次啟動Apache

————————————————

版權聲明:本文為CSDN部落客「潛心做事GG」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/mrzhouxiaofei/article/details/66974625

總結:

1、在php5上可以直接引入子產品PHPMailer,開啟openssl,可以正常使用郵件功能。

2、在php7(win10)上,可嘗試将libeay32.dll和ssleay32.dll檔案複制并替換到apache\bin目錄下,開啟openssl,再次啟動Apache。

附文:

部落客測試過的php7版本資訊:

PHP 7.0.32 (cli) (built: Sep 12 2018 15:54:08) ( ZTS )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

    with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans

部落客測試過的php5版本資訊:

PHP 5.5.33 (cli) (built: Mar  2 2016 15:20:49)

Copyright (c) 1997-2015 The PHP Group

Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies