PHPでSFTPアップロードを行う
【問題】
PHPでSFTPアップロードを行いたい。(SSHで書き込みを行いたい)
【解決法】
// -- 変数の設定 --
$sHost = '000.000.000.000';
$iPort = 22;
$sUser = 'user';
$sPW = 'password';
$sPath = '/path/';
$sFileName = 'filename.txt';
// -- 書き込むファイルの取得 --
$sFile = file_get_contents($sPath . $sFileName);
// -- SSH(SFTP)での書き込み --
$sConnect = $sUser . ':' . $sPW . '@' . $sHost . ':' . $iPort;
$rcFile = fopen('ssh2.sftp://' . $sConnect . $sPath . $sFileName, 'w');
fwrite($rcFile, $sFile);
fclose($rcFile);
【備考】
PHPのSFTPアップロードの方法を探してみたのですが、どうも正常に動作しないサンプルばかりネット上に転がっていたので、ここにサンプルを置いておきます。
要は
ssh2.sftp://user:pass@example.com:22/path/to/filename
の形でアクセスすれば普通のファイル書き込みと同様に行えます。
詳細は 下記をご覧ください。
http://php.net/manual/ja/wrappers.ssh2.php
役に立った
4人中4人がこの投稿は役に立ったと言っています。