首页 > 解决方案 > 在 Apache 2.4/PHP 7.4.4 中禁用 OpenSSL 支持

问题描述

我正在尝试手动设置 Apache MariaDB PHP,但我遇到了 openssl 功能的一些问题。以下是我设置 Apache 2.4 和 PHP 7.4.4 的步骤:

一、Apache httpd安装配置

  1. 从 apachelounge下载httpd-2.4.43-win64-VS16.zip并解压到“D:\Programs-64Bit\Apache24”
  2. ServerRoot在 httpd.conf 中设置完整路径
  3. 设置ServerNamelocalhost:80
  4. 在 httpd.conf 中定义WWWROOT所需的 DocumentRoot 路径(即Define WWWROOT "E:/Programs/WWW"
  5. 设置DocumentRoot<Directory>"${WWWROOT}"

二、将 PHP 与 Apache 结合

  1. 下载并解压线程安全的 php-7.4.4-Win32-vc15-x64.zip到“D:\Programs-64Bit\PHP\PHP7.4.4-64Bit”
  2. 在 httpd.conf 的末尾添加以下行:
Define PHPROOT "D:/Programs-64Bit/PHP/PHP7.4.4-64Bit"
LoadModule php7_module "${PHPROOT}/php7apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "${PHPROOT}"

LoadFile "${PHPROOT}/libcrypto-1_1-x64.dll"
LoadFile "${PHPROOT}/libssl-1_1-x64.dll"
LoadFile "${PHPROOT}/libssh2.dll"
LoadFile "${PHPROOT}/nghttp2.dll"
LoadFile "${PHPROOT}/php7ts.dll"
  1. 复制并重命名 php.ini-development 到与 php.ini 相同的 php 根目录
  2. 设置 extension_dir 并启用除 oci8_12c、pdo_firebird、pdo_oci 和 snmp 之外的每个扩展

三、用 Apache 测试 PHP

  1. 使用以下代码创建一个 php 文件 (index.php):
<?php 
     phpinfo();
?>
  1. 运行 httpd.exe

这就是它告诉我的有关 openssl 的信息:

显示 phpinfo 的 phar 部分的图像。 openssl 支持被禁用

根据StackOverflow 上的“在 Windows 上的 Apache/PHP 中禁用 OpenSSL 支持”和 php.net 页面“ PHP 手册 > 函数参考 > 加密扩展 > OpenSSL > 安装/配置”中的最后一条评论,它应该可以工作。我究竟做错了什么?

标签: phpapacheopenssl

解决方案


如果您想在Phar中启用OpenSSL支持。 只需取消注释以下行。

// php.ini
extension=openssl

推荐阅读