Maison >développement back-end >tutoriel php >PHP se connecte au serveur pour les opérations de commande du serveur
Installer l'extension PHP SSH2
### L'installation Ubuntu du serveur de liens php nécessite l'extension php :
sudo apt-get install libssh2-1 php-ssh2
Installer dans l'environnement Windows
Téléchargerextension php ssh2Adresse de téléchargement http://windows.php.net/downloads/pecl/releases/ssh2/ 0.12/
Téléchargez selon votre version PHP. J'utilise WAMPSERVER2.5 (64 bits), et la version PHP est 5.5.12, qui est thread-safe
Le téléchargement est donc php_ssh2-0.12-. 5.5 -ts-vc11-x64.zip
1. Après décompression, il y aura trois fichiers, libssh2.dll, php_ssh.dll, php_ssh2.pdb.
2. Placez php_ssh.dll et php_ssh2.pdb dans votre répertoire d'extension php php/ext/.
3. Copiez libssh2.dll dans c:/windows/system32 et c:/windows/syswow64
4. Ajoutez extension=php_ssh2.dll à php.ini
5. Redémarrez Apache et vous pourrez utiliser php pour effectuer des opérations de connexion ssh.
6. Vérifiez phpinfo() pour voir si l'extension php_ssh2 est chargée avec succès.
Installer dans un environnement Linux
Bibliothèques dépendantes requises pour l'extension PHP SSH2
openssl : collection d'algorithmes de chiffrement, implémentation du langage C
libssh2 : bibliothèque de protocoles ssh2, implémentation du langage C
PECL/ssh2 : extension PHP de libssh2, permettant aux programmes PHP d'appeler des fonctions dans libssh2
Dépendances : PECL/ssh2 – > –> openssl
Installer les packages d'extension requis
Installer libssh2
wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz tar zxf libssh2-1.4.2.tar.gz cd libssh2-1.4.2 ./configure && make && make install
Installer PECL/ssh2
wget http://pecl.php.net/get/ssh2-0.11.3.tgz cd ssh2-0.11.3 phpize (如果报错命令没有找到,apt-get install php5-dev) ./configure —with-ssh2 && make && make install
Modifier la configuration php informations
cd /etc/php5/cgi vim php.ini
Ajouter un élément : extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so est le module obtenu lors de la compilation de ssh2. Ce qui précède est l'emplacement du module. .
cd /etc/php5/cli vim php.ini
Élément ajouté : extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so est le module obtenu lors de la compilation de ssh2. Ce qui précède est l'emplacement du module.
Redémarrez le serveur Web
/etc/init.d/lighttpd restart
Vérifiez si ssh2 est chargé
[root@localhost ~]php -m | grep s
Utilisation du code php
public function actionTestServer() { //登陆linux的ssh2用户名 $ssh_user='root'; //登陆linux的密码 $ssh_pwd=''; //默认端口号22 $ssh_port='22'; //服务器IP地址 $ssh_host='120.77.62.13'; //先测试拓展是否安装并开启 if(!function_exists("ssh2_connect")){ exit('SSH扩展没有安装或者没有安装成功'); } //建立ssh2连接 $ssh2 = ssh2_connect($ssh_host, $ssh_port); if(!$ssh2){ exit('连接服务器失败'); }else{ echo '成功连接上了服务器'; } //连接成功后进行密码验证,没验证无法进行其他操作。 if(!ssh2_auth_password( $ssh2, $ssh_user, $ssh_pwd )){ return false; } //shell脚本语句 $e="/etc/init.d/nginx restart >> /tmp/nginx_restart_".date('Ymd').".log"; //通过ssh2_exec执行语句 ssh2_exec($ssh2, $e); }
Plus de connaissances liées à PHP, Veuillez visiter le site Web PHP chinois !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!