不知道从什么时候开始,公司的 Joomla 就不会跳出新版通知的讯息,如果去「元件」-「Joomla! 更新」按”检查更新”,就会显示下面的错误讯息:
警告 更新: 无法打开更新网站 #1 "JOOMLA! 核心", 网址: HTTPS://update.joomla.org/core/list.xml 更新: 无法打开更新网站 #3 "JOOMLA! 更新组件更新网站", 网址: 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 目录找到,将其复制到 apachebin 底下即可。
◎ 再度执行 httpd.exe,可能会再出现缺少其他 dll 元件,依序将其补上。如 “的libssl-1_1-x64.dll” 及 “libssh2.dll”。
◎ 将缺少的 dll 元件补齐后,再登入 joomla 后台检查更新,即可见到新版通知讯息了。
【參考連結】
- [已解决]Joomla更新问题: 无法打开更新站点 – JoomlaEC – 你最好的学习伙伴