最新版本drupal9.3.11上线后,白龙网第一时间体验了下。使用phpstudy部署环境,drupal安装成功后,在“管理->扩展”中通过“在线”的方式安装模块时,发现无法安装成功,并提示了“PHP OpenSSL requirements”。
Failed to get available update data for 2 projects. Failed to fetch available update data: See PHP OpenSSL requirements in the Drupal.org handbook for possible reasons this could happen and what you can do to resolve them. Check your local system logs for additional error messages.
这是因为从9.1.0版本开始,Drupal核心的UpdateManager使用HTTPS来获取可用更新的信息。这意味着Drupal站点使用的PHP必须安装并正确配置OpenSSL。如果PHP不支持OpenSSL,启用了UpdateManager的站点将在其可用的更新报告中看到“FailedtofetchavailableUpdatedata”错误消息。可以按照如下步骤解决这个问题。
一、网站联网
如果是在本地环境中开发,则可以忽略这一步,直接跳到第二步。如果是在服务器上调试,则必须保证服务器网络畅通。
二、启用OpenSSL
依次点击“Administration>Reports>Status>PHP>moreinformation”,在打开的页面中找到“openssl”,如果是“OpenSSLsupport:enabled”,说明网站的PHP启用了OpenSSL。
如果没有启用openssl,需要在PHP.ini配置文件中启用这个扩展。基本上,需要取消注释或添加如下行:extension=php_openssl。操作完毕后,需要重新启动web服务器(例如Apache),让设置生效。
三、安装证书
1、下载证书文件:cacert.pem(https://curl.haxx.se/ca/cacert.pem)
2、把证书文件cacert.pem放到服务器相应目录
(1)linux目录:/etc/pki/tls/cacert.pem
(2)windows目录:D:\phpstudy_pro\Extensions\php\php8.0.2nts\extras\ssl\cacert.pem
因为白龙网使用phpstudy部署的本地环境,因此,证书文件放到SSL目录下即可。如果找不到,直接搜索SSL,然后再把证书文件放进去。
3、编辑php.ini文件,并更改curl.cainfo参数,例如:
curl.cainfo="D:\phpstudy_pro\Extensions\php\php8.0.2nts\extras\ssl\cacert.pem"
注意,在某些PHP配置中,可能需要设置openssl.cafile,而不是curl.cainfo,以指向您下载的cacert.pem文件。
4、重启服务
(1)重新启动web服务器(例如,Apache)以使php.ini改变生效;
(2)清理缓存并且在“管理>扩展>更新”中执行“手动更新”操作后,错误提示就会消失。至此,可以在线安装模块了。