如何找到我的php版本(在Windows上)需要哪个版本的libssh2


How to find which version of libssh2 is required for my php version (on Windows)

当我检查我的php版本时,我收到以下警告:

PHP Warning:  PHP Startup: ssh2: Unable to initialize module
Module compiled with module API=20121212
PHP    compiled with module API=20131226
These options need to match
 in Unknown on line 0

我正在努力了解哪些版本可以协同工作,以及如何获得正确的版本来使用SSH2设置PHP。我已经能够从以下位置找到libssh的.tar.gz版本:

https://www.rpmfind.net/linux/RPM/remi/enterprise/6/x86_64/php56-php-pecl-ssh2-0.12-4.el6.remi.x86_64.html

问题是我使用的是Windows机器,而不是Linux。有人知道我是否可以获得适用于Windows的相同libssh版本吗?还是必须将PHP降级到与ssh2相同的级别?还是说这没什么好担心的,只是Windows的一个怪癖?

以下是一些可能有用的细节:

OS: Windows 10 (x64)
PHP Version: PHP 5.6.15 (cli) (built: Oct 29 2015 12:39:50)
Microsoft Visual C++ 2015 Redistributable (x64) 11.0.61030
Server version: Apache/2.4.17 (Win64)
Apache Lounge VC11 Server built:   Oct 13 2015 11:37:51

此外。。。我找到了我下载的ssh2zip的版本。它是5.5线程安全(TS)x64,来自:https://pecl.php.net/package/ssh2/0.12/windows所以,我想这意味着我需要将我的PHP降级到5.5才能正常工作。这是正确的还是有更好的方法?

我找到了这个问题的解决方案。正如OP中所述,问题是PHP模块的版本比SSH2模块的版本晚。问题是如何找到适用于所述设置的版本。事实证明,这相当棘手,因为需要集成的系统比我最初想象的要多。我错误地认为最新的版本会一起玩得很好。

由于我运行的是Windows 10 64位,我想得到一个稳定的PHP版本,可以运行它——那就是PHP 7。如本文所述:http://windows.php.net/download/.最初我下载了PHP7.0,但这与我想要安装的另一个模块MongoDB不太匹配。

当我查看MongoDB时,我意识到还没有PHP 7.0的驱动程序,所以我能得到的最新驱动程序是PHP 5.6。这意味着我不得不接受一个"实验性"的64位PHP版本。所以我做出了改变,一切都很顺利,直到我决定要使用Composer,这样我就可以管理我的PHP依赖关系了。

当我尝试使用Windows安装程序安装所有Composer时,由于未知异常而失败,并建议我从命令行尝试以获得更好的错误响应。所以我及时地做了,错误表明ssh2模块与PHP 5.6不兼容。

这最终让我提出了关于斯塔克夫流的问题。

在深入研究了ssh2的哪些版本之后,我来到了以下页面:http://windows.php.net/downloads/pecl/releases/ssh2/0.12/这告诉我,与SSH2扩展兼容的PHP的最新版本是PHP 5.5。所以…看起来解决方案是降级到5.5版本。

当我开始寻找新(旧)版本下载时,我发现了这个很棒的捆绑包网站:https://www.apachelounge.com/viewtopic.php?t=6123从那里我可以下载这个版本(https://phpdev.toolsforresearch.com/php-5.5.20-Win32-VC11-x64.zip)它将包含我在正确版本中需要的所有模块。

因此,总之,对哪些版本在一起玩得很好进行更多的预先分析将有助于或理解Apache Lounge将所有版本都放在一个整洁的捆绑包中。