我不敢相信以前没有问过,但是这里有:
我正在尝试使用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行的未知中
0
警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - %1不是有效的Win32应用程序。
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行的未知中
0
警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.3.13/ext/php_xdiff.dll' - 找不到指定的模块。
那时,我回过头来仔细阅读自述文件并发现以下内容:
此扩展程序需要libxdiff(http://www.xmailserver.org/xdiff-lib.html)。
好的,够公平的。根据{{3}}的建议,我编译了libxdiff但后来我进入了阅读
的步骤编译完成后,您需要将所有标头和库复制到相应的PHP库目录中。
我不知道“适当的PHP库目录”是什么,也不知道我应该复制哪些文件,即使丢失的libxdiff是问题(或者如果真正的问题是.dll文件我'使用与PHP 5.3 x64不兼容,我应该尝试编译PECL扩展而不是libxdiff。)
有人有任何建议吗?
答案 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版本。
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