Когда я проверяю свою версию 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
Я пытаюсь понять, какие версии работают вместе и как я могу получить правильную версию для настройки PHP с SSH2. Я смог найти .tar.gz версии libssh из таких мест, как следующие:
Проблема в том, что я использую компьютер с Windows, а не Linux. Кто-нибудь знает, могу ли я получить такую же версию libssh для Windows? Или я должен понизить 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 Thread Safe (TS) x64 из: https://pecl.php.net/package/ssh2/0.12/windows
Итак, я думаю, это означает, что мне нужно понизить мой PHP до 5.5, чтобы это работало должным образом. Это правильно или есть лучший способ?
Я нашел решение проблемы. Как указано в ОП, проблема заключалась в том, что модуль PHP был более поздней версией, чем модуль SSH2. Вопрос был в том, как найти версии, которые будут работать с указанными настройками. Это оказалось довольно сложно, потому что было необходимо интегрировать больше систем, чем я думал. Я ошибочно предполагал, что последние версии будут хорошо играть вместе.
Поскольку я использую 64-битную Windows 10, я хотел получить стабильную версию PHP, которая работает против этого — это будет PHP 7. Как сказано здесь: http://windows.php.net/download/. Первоначально я скачал PHP 7.0, но он не очень хорошо работал с другим модулем, который я хотел установить, который был MongoDB.
Когда я заглянул в MongoDB, я понял, что еще нет драйвера для PHP 7.0, поэтому последний, который я смог получить, был PHP 5.6. Это означало, что мне пришлось согласиться на «экспериментальную» 64-битную версию PHP. Так что я сделал сдвиг, и все шло хорошо, пока я не решил, что хочу получить Composer, чтобы я мог управлять своими зависимостями PHP.
Когда я попытался установить Composer с помощью установщика Windows, произошел сбой с неизвестным исключением, и я предложил попробовать из командной строки получить лучший ответ об ошибке. Так что я правильно сделал, и ошибка показала, что модуль ssh2 был несовместим с PHP 5.6.
Это в конечном итоге заставило меня задать вопрос по stackoverflow.
Еще немного покопавшись в том, какие есть версии ssh2, я перешел на следующую страницу: http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
Это говорит мне о том, что последней версией PHP, совместимой с расширением SSH2, была 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 есть все версии, которые работают вместе, в красивой аккуратной связке.
Других решений пока нет …