php安裝openssl的方法

立得國際-舊屋翻新.代客尋屋的專家

很多朋友在利用phpmailer透過gmail發送mail時,常發生無法寄送的錯誤,而其中最常見的就是php沒有支援openssl的關係,有鑑於此YOGO特別寫了這篇就學,希望能對這方面有困擾的朋友能有所幫助,至於phpmailer的設定方式,就請參考YOGO寫的另一篇文章("用PHP寄MAIL的方法 "),在此就不再贅述了。


1.首先需先確認你安裝的PHP延伸模組中是否有php_openssl.dll這個函式庫,以YOGO的安裝路徑為例,到"C:\php5\ext\"這個資料夾中看是否有php_openssl.dll這個函式庫的存在,若有但openssl無法使用那就可能沒開啟這個擴充模組,以YOGO的設定為例,到"C:\WINDOS\"資料夾底下找到一個名php.ini的檔案,用筆記本之類的軟體開啟後,搜尋php_openssl.dll,找到之後將前方的";"字號去除之後存檔重開web server之後,應該就可以使用php_openssl.dll這個模組了,若在php.ini檔中,搜尋不到php_openssl.dll的話就把"extension=php_openssl.dll"這一段家到php.ini檔中,然後存檔重開web server之後,應該就可以使用php_openssl.dll這個模組了。

2.若安裝的PHP延伸模組中沒有php_openssl.dll這個函式庫的話就要自己去下載來裝了,首先先用phpinfo()函式,看一下安裝的php版本與php.ini檔的存放路徑,如下圖。














3.確定安裝的php版本後到php的官網(http://www.php.net/)中下載相對應的php版本,不管你的php是幾版的,你要下載的是PHP_X.X.X._zip_package的版本,不要去下載其他的版本,如下圖。


 

4.隨便選擇一個載點下載,如下圖。


 


5.下載完成後解壓縮,之後會看到一個"ext"的資料夾,如下圖。

















6.進入"ext"資料夾中找到"php_openssl.dll"這個擴充模組,如下圖。
















7.將"php_openssl.dll"複製到你的php安裝路徑之下的"ext"資料夾,以YOGO為例,安裝路徑為"C:\php5\ext\",如下圖。


















8.然後用類似筆記本之類的軟體,開起php.ini檔,以YOGO的設定為例即為"C:\WINDOWS\php.ini",如下圖。



















9.搜尋"php_openssl.dll",然後將前方的";"拿掉,若搜尋不到就自己把"extension=php_openssl.dll"這一句加上去,然後存檔重開web server,如下圖。









10.用phpinfo()函式看一下openssl模組是否有載入成功,若有應該會看到如下圖的資訊。





PS:
1.若改完php.ini重開web server卻出現找不到"php_openssl.dll"擴充模組的錯誤的話,將"php_openssl.dll"及在C:\php5\資料夾底下的libeay32.dll、ssleay32.dll,這個3檔案複製到"C:\WINDOWS\System32"這個資料夾底下,然後重起web server應該就可以解決這個問題了。
2.若你安裝的web server是含 openssl 的 apache 的話,
因為根據 windows 的設計, 他會先搜尋 (根據下面那段英文字) apache/bin,所以 php 內建的永遠跑不到了,請把php_openssl.dll、libeay32.dll、ssleay32.dll覆蓋到 apache/bin 去吧. 因為那才是應用程式的執行地方。
 
When any application attempts to use a dll file in windows, the system searches for this file using the following order:
1. The directory from which the application loaded.
2. The windows\system32 directory.
3. The windows\system directory.
4. The windows directory.
5. The current directory.
6. The directories that are listed in the PATH environment variable.
 
3.php 的版本建議使用 php5,不要使用 php4,
因為PHP 4.3.x 版本有 bug
會導致 fsockopen 無法接受 "ssl://example.com",即使有 OpenSSL support,還是會產生以下這樣的錯誤訊息:

Warning: fsockopen(): no SSL support in this build


以上的設定都沒問題的後就能用phpmailer透過gmail來代送mail,以上若有任何問題歡迎各位朋友提出來一起討論,祝好運囉^^
 

如果覺得這篇文章對您有所幫助,在觀看完文章之餘,希望能點選下方方廣告,當作是對YOGO的支持,讓YOGO更有寫作的動力。

留言

Chen Tammy寫道…
請問若主機是國外的而且不支援的話,是不是安裝OPENSSL也沒用?
YOGO寫道…
是的,不過一般來說現在的主機商大多會支援並安裝好OPENSSL,建議你可以詢問你的主機商看看,若真的不支援建議可以考慮換家主機商,畢竟現在的主機對OPENSSL的支援是一件很普遍的事

這個網誌中的熱門文章

用PHP寄MAIL的方法

ImageMagick應用大全(一)