PHP7缺少ssl庫的問題

遇到問題的起因是因?yàn)槲倚枰l(fā)送郵件,但是郵件需要通過ssl。
當(dāng)我運(yùn)行的時候,laravel提示

 [Swift_TransportException]                                                   
  Connection could not be established with host smtp.exmail.qq.com [Unable to  
   find the socket transport "ssl" - did you forget to enable it when you con  
  figured PHP? #0]   

這個問題就是php缺少的ssl庫沒辦法使用,解決的方法其實(shí)也不難。
最簡單的就是直接重新編譯php7,加上--enable-openssl參數(shù),但是不想重新編譯怎么辦,很簡單,我們只要拿到openssl.so的擴(kuò)展就好了。

  1. 首先從php7的官網(wǎng)下載php7
  2. 解壓并進(jìn)入文件夾cd php7.0/ext/openssl
  3. 運(yùn)行phpize,如果命令無效,請用whereis phpize找到phpize的地址,用絕對地址運(yùn)行即可
  4. 運(yùn)行./configure --with-openssl --with-php-config=/path/to/php-config 這里請注意后面的--with-php-config參數(shù),你需要找到自己環(huán)境的php-config,同理,用whereis php-config查找一下。
  5. 運(yùn)行make && make install,會顯示編譯出來后so文件放置的地方,直接進(jìn)入這個目錄。
  6. 運(yùn)行cp openssl.so /path/to/phpext。這里你需要把文件復(fù)制到php的擴(kuò)展目錄里面,擴(kuò)展目錄在php.ini里面的extension_dir這個設(shè)置對應(yīng)的地址,假設(shè)你甚至不知道php.ini在哪里,你可以直接運(yùn)行php -i,在load ini那一項(xiàng),你就可以看到php.ini的地址。

至此,此問題完全解決。注意,其他版本的php也是同理,沒有必要只為了一個庫就重新編譯整個php。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容