PHP リモート コピーとコマンドの実行_PHP チュートリアル
php がリモートでファイルをコピーし、リモートサーバーでコマンドを実行する場合、使用されるモジュールはすべて ssh2 接続ハンドルに基づいて完了します。
1. SSH2モジュールのインストール
1.1 必要な拡張パッケージをインストールします
[プレーン]
ウィゲット
tar zxf libssh2-1.4.2.tar.gz
cd libssh2-1.4.2
./configure && make && make install
wゲット
tar zxf libssh2-1.4.2.tar.gz
cd libssh2-1.4.2
./configure && make && make install
[プレーン]
ウィゲット
cd ssh2-0.11.3
phpize (エラーコマンドが見つからない場合は、apt-get install php5-dev)
./configure —with-ssh2 && make && make install
wゲット
cd ssh2-0.11.3
phpize (エラーコマンドが見つからない場合は、apt-get install php5-dev)
./configure —with-ssh2 && make && make install
1.2 PHPの設定情報を変更する
[プレーン]
cd /etc/php5/cgi
vim php.ini
追加された項目: extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so は ssh2 をコンパイルしたときに取得されるモジュールで、上記がモジュールの場所です。
cd /etc/php5/cgi
vim php.ini
追加された項目: 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 をコンパイルしたときに取得されるモジュールで、上記がモジュールの場所です。
cd /etc/php5/cli
vim php.ini
追加された項目: extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so は ssh2 をコンパイルしたときに取得されるモジュールで、上記がモジュールの場所です。
1.3 Webサーバーを再起動します
[プレーン]
/etc/init.d/lighttpd 再起動
/etc/init.d/lighttpd 再起動
1.4 ssh2が読み込まれているか確認する
[プレーン]
[root@localhost ~]php -m ssh2
ssh2
[root@localhost ~]php -m grep ssh2
ssh22. SSH2モジュールの接続アプリ
SSH2 に接続するには、ユーザー名とパスワード、および SSH キー形式の 2 つの方法があります。
2.1 ユーザー名とパスワード
[php]
$connection = ssh2_connect("192.168.6.222",22);
if (ssh2_auth_password($connection,"veno","ubuntu"))
{
echo "認証に成功しました! ";
}その他{
die("認証に失敗しました...");
}
$connection = ssh2_connect("192.168.6.222",22);
if (ssh2_auth_password($connection,"veno","ubuntu"))
echo "認証に成功しました! ";
}その他{
die("認証に失敗しました...");
}
2.2 SSHキー
[php]
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
「/root/.ssh/id_rsa」))
{
「公開鍵認証に成功しました」をエコーします
} その他 {
echo (「公開鍵認証に失敗しました」)
}
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
「/root/.ssh/id_rsa.pub」、
{
echo "公開鍵認証に成功しました";
} その他 {
echo ('公開鍵認証に失敗しました');
}
追記: 鍵の生成:
サーバー192.168.6.229にrootとしてログインします
#ssh-keygen
#ssh-keygen
ご質問がある場合は、Enter キーを押してください
229 でのキー検証を通じて 222 にログインしたい場合は、229 の公開キー id_rsa.pub を 222 に設定し、まず手動で root にログインしてから、次を実行します:
【プレーン】
cat id_rsa.pub >> ~/.ssh/authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys
このようにして、229 で 192.168.6.229 に ssh 接続し、パスワードを入力せずに 222 にログインできます。上記の php コードは 229 の検証にも合格できます。
3. SSH2モジュールの具体的な用途
SSH2認証に合格した後、取得された接続文字は$connection
3.1 ファイルのリモートコピーを実装する
リモートサーバーファイルをローカルにコピーします:
bool ssh2_scp_recv (リソース $session、文字列 $remote_file、文字列 $local_file )
追記: ファイルを受信するときは、次のようなファイル名を空にすることができます:
[php]
ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/')
ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/')
ローカルファイルをリモートサーバーにコピーします
bool ssh2_scp_send ( resource $session, string $local_file, string $remote_file [, int $create_mode] )
追記: ファイルを送信する場合、次のようなファイル名を空にすることはできません:
[php]
ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');
resource ssh2_exec( resource $session, string $command [, string $pty [, array $env [, int $width [, int $height [, int $width_height_type]]]]] )
[php]
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
stream_set_blocking($stream,true);
エコー stream_get_contents($stream);
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
stream_set_blocking($stream,true);
echo stream_get_contents($stream);
[php]
エコー「訪問しに来ました」
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
「/root/.ssh/id_rsa.pub」、
「/root/.ssh/id_rsa」))
{
「公開鍵認証に成功しました」をエコーします
//$flag=ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/');
//受信時、後続のファイル名は空でも構いません
//$flag=ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');
//送信する場合、次のファイル名を空にすることはできません
// $フラグをエコーします。
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
stream_set_blocking($stream,true);
エコー stream_get_contents($stream);
} その他 {
echo (「公開鍵認証に失敗しました」)
}
エコー "
";
$connection = ssh2_connect('192.168.6.222', 22);
ssh2_auth_password($connection, 'veno', '*******');
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
エコー "
";
エコー " - - - - - - - - - - - - - - - - - - - - - - - - -" ;
stream_set_blocking($stream,true);
エコー stream_get_contents($stream);
エコー " - - - - - - - - - - - - - - - - - - - - - - - - -" ;
エコー "
";
echo 「訪問するためにここに来ました」;
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
「/root/.ssh/id_rsa.pub」、
「/root/.ssh/id_rsa」))
{
echo "公開鍵認証に成功しました";
//$flag=ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/');
//受信時、後続のファイル名は空でも構いません
//$flag=ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');
//送信時、以下のファイル名を空にすることはできません
// $flag;
をエコーする
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
stream_set_blocking($stream,true);
echo stream_get_contents($stream);
} その他 {
echo ('公開鍵認証に失敗しました');
}
echo "
";
$connection = ssh2_connect('192.168.6.222', 22);
ssh2_auth_password($connection, 'veno', '*******');
$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
echo "
";
エコー " - - - - - - - - - - - - - - - - - - - - - - - - -" ;
stream_set_blocking($stream,true);
echo stream_get_contents($stream);
エコー " - - - - - - - - - - - - - - - - - - - - - - - - -" ;
echo "
";

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

IISでPHPの構成と実行には、次の手順が必要です。1)PHPをダウンロードしてインストールする、2)IISの構成とFastCGIモジュールの追加、3)アプリケーションプールの作成とセットアップ4)Webサイトを作成してアプリケーションプールにバインドします。これらの手順を通じて、スケーリングと最適化パフォーマンスを構成することにより、WindowsサーバーにPHPアプリケーションを簡単に展開し、アプリケーションの安定性と効率を向上させることができます。

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。

HTML5は5つの重要な改善をもたらします。1。セマンティックタグにより、コードの明確性とSEO効果が向上します。 2.マルチメディアサポートは、ビデオとオーディオの埋め込みを簡素化します。 3。フォームエンハンスメントは、検証を簡素化します。 4.オフラインおよびローカルストレージにより、ユーザーエクスペリエンスが向上します。 5。キャンバスとグラフィック機能は、Webページの視覚化を強化します。
