使用WAMP在Windows上安装PHP xdiff

时间:2014-06-05 20:06:14

标签: php wampserver pecl

我不敢相信以前没有问过,但是这里有:

我正在尝试使用WAMP和PHP 5.3版在Windows(64位)上安装xdiff。

pecl.php.net没有为这个组合提供.dll文件,所以我尝试下载5.3 x86文件和5.5 x64版本,但都没有工作。 x86版本在apache日志中生成以下警告:

  

[Thu Jun 05 15:55:47 2014] [warn] Init:未配置会话缓存[提示:SSLSessionCache]   PHP警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - %1不是有效的Win32应用程序。\ r \ n在第0行的未知中   
  警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - %1不是有效的Win32应用程序。

      0

x64版本生成了此警告:

  

[Thu Jun 05 15:58:16 2014] [warn] Init:未配置会话缓存[提示:SSLSessionCache]   PHP警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - 找不到指定的模块。\ r \ n在第0行的未知中   
  警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - 找不到指定的模块。

      0

那时,我回过头来仔细阅读自述文件并发现以下内容:

  

此扩展程序需要libxdiff(http://www.xmailserver.org/xdiff-lib.html)。

好的,够公平的。根据{{​​3}}的建议,我编译了libxdiff但后来我进入了阅读

的步骤
  

编译完成后,您需要将所有标头和库复制到相应的PHP库目录中。

我不知道“适当的PHP库目录”是什么,也不知道我应该复制哪些文件,即使丢失的libxdiff是问题(或者如果真正的问题是.dll文件我'使用与PHP 5.3 x64不兼容,我应该尝试编译PECL扩展而不是libxdiff。)

有人有任何建议吗?

2 个答案:

答案 0 :(得分:1)

好的,凭借这条消息,我假设您正在运行32位Wampserver。多数民众赞成,32位代码在64位操作系统上运行,但不是相反。

PHP警告:PHP启动:无法加载动态库' c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - %1不是有效的 Win32 应用程序。\ n \ r \ n在第0行的未知中

所以你需要下载32位版本的php_xdiff

由于WampServer配置Apache& amp; PHP你需要Thread Safe dll,即下载文件名包含 -ts - 而不是 -nts -

当您尝试将其添加到PHP5.3.x时,您可能需要使用VC9编译的版本,除非PHP5.3.you_dont_specify太旧,它是用VC6编译的,在这种情况下我不知道你在哪里可以获得来自的版本。在这种情况下,您可能正在考虑至少升级Apache和PHP版本。

php_xdiff from here

pecl dependancies compiled libraries from here, like libxdiff

答案 1 :(得分:0)

与RiggsFolly已经发布的内容互补,这是正确的,请记住,您需要在php.ini文件中包括xdiff才能在Wamp中使用xdiff *函数。

这可能很棘手,因为wamp \ bin \ php目录中实际上有两个php.ini文件。一个叫php.ini,另一个叫phpForApache.ini,活动的一个叫phpForApache.ini(或者至少是我设置的样子)

要包括xdiff扩展名,您需要在php.ini文件中搜索extension=并添加xdiff扩展名,如下所示:

PHP 7.1或更早版本

extension=... (other extensions)
extension=php_xdiff.dll

PHP 7.2 +

extension=... (other extensions)
extension=xdiff