【问题标题】:PHP 7.1.13 extensions not found未找到 PHP 7.1.13 扩展
【发布时间】:2018-07-11 00:29:04
【问题描述】:

我想在 apache 上安装 php 7.1.13,但是当我尝试重新启动/启动 apache 时,我不断收到错误,

The request operation has failed!

在我的日志中,我不断收到无法找到 php 扩展的错误消息。但这是不可能的,因为我使用 /ext 文件夹的绝对路径。

 PHP Warning:  PHP Startup: Unable to load dynamic library
 'D:\\apache\\php7\\ext\\php_mbstring.dll'

我也有较旧的 PHP7 文件夹,该文件夹工作正常,但一旦我想升级到更高版本,我就会不断收到这些错误。

【问题讨论】:

  • 你能告诉我你在 php.ini 中的扩展设置吗
  • extension_dir = "D:\apache\php7\ext"
  • 我假设你也有以下? extension=php_mbstring.dll
  • 是的,我刚刚升级了我的 apache 仍然是同样的错误..

标签: php apache httpd.conf


【解决方案1】:

确保:

  • php.ini 中的扩展被标记为extension=curlextension=ldap 等。
    PHP 7+ 配置使用这种格式而不是以前版本中的extension=php_curl.dll(由于遗留原因仍然支持,但是已弃用)。
  • 配置行 extension_dir = "C:/path_to_your_php/" 包含您的 php 扩展目录的绝对路径。
  • 在您的系统中安装了适当的 Visual C++ Redist。例如。 PHP 7 x64Apache 2.4 x64 都需要 VCRedist 2017(x64:https://aka.ms/vs/15/release/vc_redist.x64.exe,x86:https://aka.ms/vs/15/release/vc_redist.x86.exe
  • 将以下配置行添加到您的 <apache_dir>/conf/httpd.conf 文件中:
LoadFile "path_to_php_dir/libsasl.dll"
LoadFile "path_to_php_dir/libpq.dll"
LoadFile "path_to_php_dir/php7ts.dll"
LoadFile "path_to_php_dir/libssh2.dll"
LoadFile "path_to_php_dir/nghttp2.dll"
LoadFile "path_to_php_dir/libcrypto-1_1-x64.dll"
LoadFile "path_to_php_dir/libssl-1_1-x64.dll"

此配置块使 Apache 预加载这些文件,因此您的扩展不会由于不匹配的依赖项而在加载时失败。

  • 不会错过其他扩展和/或 PHP DLL 依赖项。您可以使用免费的“Dependency Walker”工具 (http://www.dependencywalker.com/) 来检查 DLL 文件加载中是否存在丢失的依赖项(例如 php_dir/php*.dllphp_dir/ext/*.dll、...)。

    据我了解,问题在于 PHP 扩展需要加载一些动态库(所谓的“库依赖项”)。如果不是,您将收到错误“无法加载动态库.....第 0 行中的未知”。很多次我都收到这个错误,问题在于不匹配的 DLL 依赖项。

【讨论】:

    【解决方案2】:

    原因可能是您的 php 可执行文件和扩展库是由不同版本的编译器编译的。在此处阅读如何找出两个文件中使用了哪些编译器:Is there a way to determine which version of Visual Studio was used to compile a static library?

    【讨论】:

    • @MartinRogu 我想到的唯一想法是您应该使用相同的编译器进行编译,有可用的软件包,例如 xampp for Windows,其中包含匹配的文件,您也可以通过以下方式编译两者的代码我猜你自己,但我也猜你可以下载指定版本的编译器的编译文件。但首先你应该检查事实是否如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多