web-dev-qa-db-fra.com

PHP Installer SSH2 sur une machine Windows

J'essaie d'installer this sur une machine Windows+Apache. La documentation indique que SSH2 nécessite les bibliothèques OpenSSL et libssh2. J'ai ajouté ces lignes dans mon fichier php.ini:

extension=php_openssl.dll
extension=php_ssh2.dll

et redémarré Apache mais cela ne fonctionne toujours pas (Fatal error: Call to undefined function ssh2_connect()).

Quelqu'un peut-il m'expliquer comment installer ce service?

Merci

ps: je suis italien, désolé pour mon anglais ...

18
LaYle

Voici comment je l'ai fait:

  1. Extension Win32 SSH2 PECL téléchargée depuis cet emplacement (choisissez la version appropriée);

  2. Extrait le contenu de l'archive et:

    • placé php_ssh2.dll et php_ssh2.pdb fichiers dans le dossier ext (par exemple C:\php\ext);
    • copié libssh2.dll fichier vers C:\Windows\system32 et (si vous avez Win64) C:\Windows\SysWOW64 Dossiers);
  3. Exécutez la commande suivante pour enregistrer la DLL:

    C:\> regsvr32 libssh2.dll
    
  4. Redémarrer Apache.

Note finale

Si vous avez PHP x64, vous devez rechercher la version x64 de la bibliothèque/DLL SSH2. Ce site propose des bibliothèques compilées Win64 pour PHP, essayez ici d'abord .

J'espère que cela t'aides.

29
Alex B

Si quelqu'un a du mal à installer SSH2, voici comment je l'ai fait:

1) Téléchargez la bibliothèque SSH2 PECL depuis PHP.net [choisissez la version appropriée].

2) Copiez libssh2.dll vers System32 [x86] ou SysWOW64 [x64].

3) Copier php_ssh2.dll et php_ssh2.pdb au dossier php/ext .

4) Supprimer ";" du ;extension=php_ssh2.dll ligne dans php.ini. Si cette ligne n'est pas sur votre php.ini, ajoutez-la.

5) Redémarrez Apache .

10
user2893097
  1. Endroit php_ssh2.dll dans le dossier ext
  2. Endroit libssh2.dll dans le dossier php
  3. Redémarrez IIS

ça marche pour moi

  • PHP 5.4.25 NTS + Windows Server 2012
7
MrTeChId

Si vous utilisez xamp 3.2.1 et PHP 5.6.8, cela pourrait vous être utile.

Faites ce qu'a dit alex b, et téléchargez le paquet qui correspond en fonction de votre version php (et bits) de cette page ( link )

J'ai téléchargé et remplacé dans C:\xampp\php\ext et cela a fonctionné!

J'espère que cela vous aide, salut.

4
Cristian B.

libssh2 (deps): http://windows.php.net/downloads/php-sdk/deps/

php_ssh2 (ext): http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

Les versions antérieures à 5.5 ont déjà le libssh2.dll (à partir du deuxième lien)

3
lodev09

J'ai wamp avec PHP 5.6.25/7.0.10 - MySQL 5.7.14 installé et je travaille actuellement sur PHP 7.0. J'ai eu la même erreur . J'ai vérifié en utilisant phpinfo () si les deux librarires OpenSSL et libssh2 fonctionnaient (vous pouvez google comment le vérifier). Après avoir pu voir qu'ils fonctionnaient, j'ai téléchargé php_ssh2.dll sur http: // pecl. php.net/package/ssh2/1.0/windows (peut également être trouvé http://windows.php.net/downloads/pecl/releases/ssh2/ ) pour la version 7.0, mettez-le dans le dossier php\ext. Que je l'ai inclus dans le fichier php.ini en utilisant extension = php_ssh2.dll.

Ensuite, il est apparu sur phpinfo (). Et ça a marché. J'espère que ça aide.

2
Maks Z.

Fix qui a fonctionné pour moi. Exécute xampp v. 3.2.1 Apache 2.2 face au même problème a essayé de placer les fichiers dll à un autre emplacement c: mais a finalement échoué, cela a aidé.

1.) Téléchargez les fichiers dll spécifiques à la version depuis http://pecl.php.net/package/ssh2/0.12/windows et extrayez les fichiers

Notez que même si vous êtes en version 64 bits de Windows, téléchargez la version 32 de THREAD SAFE ssh c'est-à-dire Thread Safe (TS) x86 selon votre version de php

2.) Ajoutez/remplacez libssh2.dll dans C:\xampp\php (installation standard)

3.) Ajoutez/remplacez les php_ssh2.dll et php_ssh2.pdb dans le C:\xampp\php\ext (installation standard)

4.) redémarrez le serveur Apache

A fonctionné comme un charme

À VOTRE SANTÉ

1
akashBhardwaj

Tout d'abord, votre question révèle deux idées fausses:

  1. La section Exigences dit en fait ceci:

    Les bibliothèques "OpenSSL et" libssh2 sont requises. Assurez-vous que les bibliothèques de développement sont installées, où un nom de package typique peut être openssl-dev.

    Il ne s'agit pas de PHP, il s'agit de bibliothèques tierces qui n'ont rien à voir avec PHP.

  2. extension=php_ssh2.dll nécessite que vous ayez un fichier appelé php_ssh2.dll dans le répertoire ext de votre PHP et vous ne l'avez probablement pas, principalement parce qu'il n'est pas fourni avec PHP.

Si nous vérifions le chapitre Installation , nous pouvons lire que SSH2 est une extension PECL. Il y a quelques liens avec des instructions mais je peux faire un résumé des informations importantes:

  • Tu as besoin d'un php_ssh2.dll fichier qui correspond à votre installation PHP.
  • Ni l'équipe PHP ni l'équipe PECL ne distribuent un tel fichier.
  • L'installation des extensions PECL sur Windows est difficile. Vous devez télécharger le code source C, saisir un compilateur C et créer le fichier vous-même, ou trouver quelqu'un qui l'a déjà fait pour vous.

Dit cela, à moins que vous Google pour php_ssh2.dll et trouver quelque chose de pertinent, vous n'avez probablement pas de chance.

0
Álvaro González