ホームページ  >  記事  >  バックエンド開発  >  PHP はサーバー コマンド操作のためにサーバーに接続します

PHP はサーバー コマンド操作のためにサーバーに接続します

angryTom
angryTomオリジナル
2019-10-31 18:02:394945ブラウズ

PHP はサーバー コマンド操作のためにサーバーに接続します

PHP SSH2 拡張機能のインストール

PHP リンク サーバーの Ubuntu インストールには php 拡張機能が必要です:

sudo apt-get install libssh2-1 php-ssh2
Windows 環境へのインストール

ダウンロードphp 拡張機能 ssh2

ダウンロード アドレス http://windows.php.net/downloads/pecl/releases/ssh2/ 0.12/


PHP バージョンに応じてダウンロードします。私は WAMPSERVER2.5 (64 ビット) を使用していますが、PHP バージョンは 5.5.12 で、スレッドセーフです。

つまり、ダウンロードは php_ssh2-0.12- です。 5.5 -ts-vc11-x64.zip

1. 解凍後、libssh2.dll、php_ssh.dll、php_ssh2.pdb の 3 つのファイルができます。

2. php_ssh.dll と php_ssh2.pdb を php 拡張ディレクトリ php/ext/ に配置します。

3. libssh2.dll を c:/windows/system32 および c:/windows/syswow64 にコピーします

4. extension=php_ssh2.dll## を php.ini に追加します

# 5. Apache を再起動すると、php を使用して ssh 接続操作を実行できるようになります。

6. phpinfo() をチェックして、php_ssh2 拡張機能が正常にロードされたかどうかを確認します。

Linux 環境へのインストール

PHP SSH2 拡張に必要な依存ライブラリ

openssl: 暗号化アルゴリズムのコレクション、C 言語の実装

libssh2: ssh2 プロトコル ライブラリ ライブラリ、C 言語実装

PECL/ssh2: libssh2 の PHP 拡張機能。PHP プログラムが libssh2 内の関数を呼び出せるようにします。

依存関係: PECL/ssh2 – > libssh2 –> openssl

必要な拡張機能パッケージをインストールします

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

インストール 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

php を変更します設定情報

cd  /etc/php5/cgi  
vim  php.ini

Add item: extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so は、ssh2 をコンパイルしたときに取得されるモジュールです。モジュール。

cd  /etc/php5/cli  
vim  php.ini

追加項目: extension=/usr/lib/php5/20090626/ssh2.so
ssh2.soはssh2をコンパイルした際に得られるモジュールで、上記がモジュールの場所です。

Web サーバーを再起動します

/etc/init.d/lighttpd restart

ssh2 がロードされているかどうかを確認します

[root@localhost ~]php -m | grep s

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);
}

PHP 関連の知識をさらに増やす、 PHP 中国語 Web サイト にアクセスしてください。

以上がPHP はサーバー コマンド操作のためにサーバーに接続しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。