【发布时间】:2015-12-10 19:59:45
【问题描述】:
当我检查我的 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 版本:
问题是我使用的是 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 的版本。它是 5.5 线程安全 (TS) x64,来自:https://pecl.php.net/package/ssh2/0.12/windows 所以,我想这意味着我需要将我的 PHP 降级到 5.5 才能正常工作。这是正确的还是有更好的方法?
【问题讨论】:
-
不,这不是 Windows 的怪癖。您正在尝试加载针对(例如)php 5.2 编译的 dll,同时运行更新的(可能是 5.3/5.4?)版本。如果你用 linux .so 文件尝试同样的事情,你会得到完全相同的警告。
-
人们只能希望微软有朝一日能够成功创建一个包管理系统,因为它在 15 年前在其他操作系统中得到了证明和日常使用,并解决了这些问题。我的意思是他们在过去 10 年里抄袭了其他所有东西。为什么不呢?
标签: php windows apache libssh2