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

时间:2015-12-10 19:59:46

标签: php windows apache libssh2

当我查看我的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。我已经能够从以下地方找到.tar.gz版本的libssh:

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

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

1 个答案:

答案 0 :(得分:-1)

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

当我运行Windows 10 64位时,我想获得针对此运行的PHP的稳定版本 - 这将是PHP 7.如此处所述:http://windows.php.net/download/。最初我下载了PHP 7.0,但这与我想要安装的另一个模块(MongoDB)不能很好地兼容。

当我查看MongoDB时,我意识到没有PHP 7.0的驱动程序,所以我能得到的最新版本是PHP 5.6。这意味着我不得不满足于“实验性”64位版本的PHP。所以我做了转变,一切都很好,直到我决定要获得Composer,以便我可以管理我的PHP依赖项。

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

这最终让我在stackoverflow上提出问题。

在进一步深入了解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具有在一个漂亮整洁的捆绑中协同工作的所有版本。