不知道從什麼時候開始,公司的 Joomla 就不會跳出新版通知的訊息,如果去「元件」-「Joomla! 更新」按”檢查更新”,就會顯示下面的錯誤訊息:
警告 更新: 無法打開更新網站 #1 "Joomla! Core", 網址: https://update.joomla.org/core/list.xml 更新: 無法打開更新網站 #3 "Joomla! Update Component Update Site", 網址: https://update.joomla.org/core/extensions/com_joomlaupdate.xml
花了不少時間研究,都找不出原因,後來只能改用手動上傳的方式更新。直到這兩天在自己電腦架設一個 Demo 站,把 Joomla 還原到自己電腦,並登入後台時,竟然出現新版 Joomla 的通知訊息,仔細回推可能的原因後,總算找出問題的癥結點。
以往在正式環境下,會讓 Apache 以服務的方式啟動,而這次在自己電腦上,由於不想浪費硬體資源,因此暫時沒把 Apache 註冊成服務,等要用時再自己啟動。在第一次用指令執行 httpd.exe 時,發現有跳出幾個跟 SSL 有關的 dll 元件遺失的訊息,而比對正式環境,其實也有同樣問題,只是用服務啟動時,不會看見相關錯誤訊息。後來便順勢研究並解決掉這個錯誤,而這個錯誤,卻也是造成 Joomla 無法更新的原因。
Joomla 的更新網站皆為 https 協定,而缺少的 SSL 相關 dll 元件,即會造成 Joomla 在處理 https 協定的網址時,無法正常運作,因此只要補上 httpd 所需的 dll 元件,便可解決 Joomla 更新問題。
◎ 手動啟動 httpd.exe,觀察漏掉哪幾個 dll 元件,以我來說,缺少了 “libcrypto-1_1-x64.dll” 及 “libsasl.dll”。
◎ 缺少的 dll 元件,可以在 php 目錄找到,將其複製到 apache\bin 底下即可。
◎ 再度執行 httpd.exe,可能會再出現缺少其他 dll 元件,依序將其補上。如 “libssl-1_1-x64.dll” 及 “libssh2.dll”。
◎ 將缺少的 dll 元件補齊後,再登入 joomla 後台檢查更新,即可見到新版通知訊息了。
【參考連結】
- [已解決]Joomla更新問題: Could not open update site – JoomlaEC – 你最好的學習夥伴