Potřeboval jsem nainstalovat php_ssh2
extension a byla to taková pruda, že než abych příště zas musel složitě hledat a poskládávat správné řešení, tak se s vámi podělím na blogu.
Lehký úvod k prostředí:
- mám Windows 8.1
- lokálně vyvíjím na XAMPPu
- XAMPP mám v c:\xampp (default)
- předpokládám, že jste se v tom nehrabali a cesty máte výchozí
Pokud máte přidanou cestu k PHP binárkám do cesty, tak byste měli mít k dispozici PECL.
λ where pecl
c:\xampp\php\pecl.bat
To by měla být preferovaná cesta, jak získávat extensions. Funguje podobně jako PEAR. Bohužel ne vždy úspěšně.
λ pecl install ssh2
No releases available for package "pecl.php.net/ssh2"
install failed
Protože se preferovaný postup nezdařil je čas na workaround. Pokud vyvíjíte na windows tak je windows.php.net váš nejlepší kamarád. Najdete tam (mimo jiné) extensiony z PECLu zbuildnuté pro jednotlivé verze PHP a jejich x86 a x64 verze. Správnou verzi zjistíte tak, že si zavoláte phpinfo()
(resp. php -i
v CLI) a najdete si PHP Extension Build => API20121212,TS,VC11
. Z toho je vidět, že chcete verzi VC11, TS. Dále z Architecture => x86
je patrné, že chcete x86 verzi. Pro mé PHP 5.5 je to tedy php_ssh2-0.12-5.5-ts-vc11-x86.zip
(nazev-verze-verzePHP-threadSafety-compiler-architecture.zip
)
Některé knihovny jsou jen jedno DLLko a tím to hasne. To DLLko je třeba nakopírovat do c:\xampp\php\ext
. Druhý krok je jejich přidání do c:\xampp\php\php.ini
:
extension=php_ssh2.dll
Pokud je extensiona jen jedno DLLko, tak máte hotovo. Stačí otočit apache a je to. V případě ssh2 je to ovšem komplikovanější. To má DLLka hned dvě. Jednak extension php_ssh2.dll
a pak ještě libssh2.dll
. První zmíněnou nakopírujeme podle plánu do c:\xampp\php\ext
. S druhou je to ovšem komplikovanější. Některé návody radí dát ji do c:\windows\system32
a pomocí regsvc32 libssh2.dll
ji "zavést". To mi naprosto nefungovalo. Avšak stačilo nakopírovat libssh2.dll
do složky c:\xampp\php
(tj. vedle php.exe
) a jede to jak po másle.
Doufám, že návod někomu pomůže a případně se podělte v komentářích na jaké další problémy jstes instalcí extensions ve Windows narazili.