PHP警告:PHP启动:无法加载动态库

时间:2016-11-22 08:19:51

标签: php apache

我不能使用任何php扩展。 PHP的工作没有未注释的扩展。 来自error.log的文字:

  

PHP警告:PHP启动:无法加载动态库   'D:/工作/网络/ PHP / EXT / {any_extension}的.dll'

我有Windows 10 x64,PHP7 x64,Apache 2.4 x64;

php.ini中的扩展行:

  

extension_dir =“d:/ work / www / php / ext /”

路径正确

我在Windows PATH中添加了这个:

  

d:/工作/网络/ PHP
  d:/工作/ WWW / PHP /分机
  d:/工作/网络/阿帕奇
  d:/工作/网络/阿帕奇/ bin中

来自phpinfo的文字:

  

extension_dir - d:/ work / www / php / ext

类似

的语法
  

延长= d:/工作/网络/ PHP / EXT / {any_extension}的.dll

php.ini中的

不会改变任何东西。

谁能告诉我什么是错的?

1 个答案:

答案 0 :(得分:2)

确保:

  • php.ini中的扩展程序标记为extension=curlextension=ldap等。
    在以前的版本中,PHP 7+配置使用此格式代替extension=php_curl.dll(由于遗留原因仍然支持,但已弃用)。
  • config line extension_dir = "C:/path_to_your_php/"包含php扩展名的绝对路径。
  • 在您的系统中安装了正确的Visual C ++ Redist。例如。 PHP 7 x64 Apache 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。

  • 其他扩展DLL和/或PHP DLL依赖项不会错过。你可以使用免费的&#34; Dependency Walker&#34;工具(http://www.dependencywalker.com/)检查加载错过的依赖项的每个DLL文件(php_dir/php*.dllphp_dir/ext/*.dll,...)。