作者:成都长风云Drupal开发团队
正值Drupal10成熟使用、Drupal11正式发布阶段,成都长风云Drupal开发团队总结了Drupal10和Drupal11的运行环境需求,方便Drupal爱好者学习研究,为Drupal在国内的发展近一些绵薄之力。我们详细总结了Drupal11的web服务器要求、Drupal11的PHP环境要求、Drupal11的内存要求、Drupal11的composer要求、Drupal11的数据库版本要求等,请查看成都长风云Drupal开发团队官网的Drupal技术分享栏目。本文详细叙述了Drupal11运行所需的PHP OpenSSL要求。
从9.1.0版本开始(当然包括Drupal11),Drupal核心的更新管理器使用HTTPS获取有关可用更新的信息。这意味着Drupal站点使用的PHP必须安装并正确配置OpenSSL。如果PHP不支持OpenSSL,启用了更新管理器的站点将在其可用更新报告中看到“无法获取可用更新数据”错误消息。
如果你看到这个错误,你可以采取一些步骤来让事情正常进行:
1、确认网站可以连接到互联网
2、确认OpenSSL已启用
3、确认站点的证书文件已正确安装和配置
4、如果需要,配置更新管理器以回退到HTTP
一、确认网站可以连接到互联网
在担心OpenSSL和HTTPS之前,第一步是确保该网站可以访问公共互联网。考虑:
这是一个在本地服务器上运行的测试站点,还是一个根本没有互联网连接的容器内的测试站点?
该站点是否位于网络代理服务器后面?如果是这样,网络和站点是否正确配置为使用该代理?
该网站必须能够访问公共互联网,否则这些说明都无济于事。
二、确认OpenSSL已启用
首先,检查网站的PHP是否启用了OpenSSL:
管理>报告>状态
点击PHP版本(/admin/reports/status/PHP)下的“更多信息”链接
应该有一个名为“openssl”的部分,你应该看到这样的内容:
OpenSSL support: enabled
如果没有,您必须参考PHP openssl扩展文档,了解如何在PHP.ini配置文件中启用此扩展。基本上,您需要取消注释或添加这样的行:extension=php_openssl.so,并可能重新启动您的web服务器守护进程(例如Apache)。详细信息将根据您的托管环境而有所不同。如果您不确定,请咨询您的系统管理员或主机提供商。
三、确认站点的证书文件已正确安装和配置
您可能会在站点的日志文件中看到以下错误之一:
SSL证书问题:无法获取本地颁发者证书
SSL证书问题:验证CA证书是否正常。
如果是这样,这意味着您的网站没有安装正确的证书颁发机构(CA)证书,或者PHP找不到正确的证书。您可以安装cURL本身提供的一组受信任的证书:
下载cacert.pem
将cacert.pem文件移动到受影响的计算机,例如:
/etc/pki/tls/cachert.pem
C:\php\extras\ssl\cachert.pem
编辑php.ini文件并更改curl.cainfo参数,例如:
curl.cainfo=“/etc/pki/tls/cacert.pem”
curl.cainfo=“C:\php\extras\ssl\cachert.pem”
请注意,在某些PHP配置中,您可能需要设置openssl.cafile,而不是curl.cainfo,以指向您下载的cacert.pem文件。
可能重新启动您的Web服务器(例如Apache)以使php.ini更改生效。
四、如果需要,配置更新管理器以回退到HTTP
如果您无法更改站点的PHP配置,或者所有其他配置都失败,您可以配置Drupal的更新管理器以回退到使用HTTP。这是不推荐的,而且不太安全(可能会使您面临“中间人”攻击,恶意网站声称是updates.drupal.org并向您提供虚假信息)。然而,如果没有任何迹象表明你的网站缺少Drupal核心和贡献模块和主题的可用安全更新,情况可能会更糟。因此,如果需要,您可以在settings.php文件中设置以下内容:
$settings[‘update_fetch_with_http_fallback’]=true;
在这种情况下,更新管理器仍将首先尝试HTTPS,但如果失败,它不会放弃并打印错误消息,而是将使用HTTP再次尝试,并希望获取可用的更新数据。
如果您定义了此设置,并尝试“手动检查”(使用网站“可用更新”报告中的链接),但仍然看到错误消息,请确保您的网站已连接到互联网,网络设置正确等。调试站点无法发出出站请求的所有可能情况不在本文档的范围内。祝你好运!