当我查看我的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:
问题是我使用的是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才能使其正常工作。这是正确的还是有更好的方法?
答案 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具有在一个漂亮整洁的捆绑中协同工作的所有版本。