Maison >développement back-end >tutoriel php >PHP se connecte au serveur pour les opérations de commande du serveur

PHP se connecte au serveur pour les opérations de commande du serveur

angryTom
angryTomoriginal
2019-10-31 18:02:394982parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn