-
phpseclib3\net\sftpライブラリのインストール: 最初に、phpseclib3\net\sftpライブラリをインストールする必要があります。これは、PHPでSFTP接続を管理するための非常に便利なライブラリです。インストール手順は次の通りです:
composer require phpseclib/phpseclib
-
SFTP接続の確立: SFTP接続を確立するには、以下の手順に従います。
use phpseclib3\Net\SFTP; $sftp = new SFTP('ホスト名'); if (!$sftp->login('ユーザー名', 'パスワード')) { exit('ログインに失敗しました'); }
上記のコードでは、ホスト名、ユーザー名、およびパスワードを適切な値で置き換える必要があります。
-
ファイルのアップロード: SFTP接続が確立された後、ファイルをアップロードすることができます。以下は、ファイルをアップロードする例です。
$localFile = '/ローカル/ファイル/パス'; $remoteFile = '/リモート/ファイル/パス'; if (!$sftp->put($remoteFile, $localFile, SFTP::SOURCE_LOCAL_FILE)) { exit('ファイルのアップロードに失敗しました'); }
上記の例では、ローカルファイルのパスとリモートファイルのパスを適切な値に置き換える必要があります。
-
エラーの解決: SFTP接続時によく発生するエラーとその解決法をいくつか紹介します。
-
エラーメッセージ: "SSH2サポートが無効です" (SSH2 support is not enabled) 解決法: PHPでSSH2拡張が有効になっていることを確認してください。必要な場合は、php.iniファイルを編集し、"extension=ssh2"という行をアンコメントして有効にします。
-
エラーメッセージ: "ホストキーが見つかりません" (Host key not found) 解決法: 接続先のホストの公開鍵を信頼済みのホストキーとして登録してください。これには、
loadHostKeys()
メソッドを使用することができます。
-
このブログ投稿では、PHPを使用してSFTP接続を確立する手順と一般的なエラーの解決法を詳しく説明しました。これにより、SFTPを使用してファイルのアップロードやダウンロードなどの操作を行うことができるようになります。