Mit PHP eine Datei über SCP auf einen anderen Server übertragen
- Aktualisiert: Donnerstag, 05. Januar 2023 07:51
- Geschrieben von Mazin Shanyoor
Für die Übertragung einer Datei mit einem PHP-Script über das Secure Copy Protocol (SCP) gibt es mit der ssh2_scp_send()-Funktion einen eleganten Prozess dieses zu realisieren. Die ssh2_scp_send()-Funktion gehört zu der SSH2-Erweiterung, die es ermöglicht, Dateien via SCP zu übertragen.
Die PHP SSH2-Erweiterung muss in der Regel unter Debian/ Ubuntu nachinstalliert werden (siehe Listing 2), da sie nicht zum Standardumfang von PHP gehört.
Listing 1: Versenden von Dateien via SCP über die SSH2-Erweiterung von PHP
<?php
// Verbindungsparameter zum externen Backup-Server
$extern_host = 'IP-Adresse';
$extren_user = 'ExternerUser';
$extern_password = 'ExternesPasswort';
// Pfad zum Speicherort des Backups
$backup_path = '/Pfad/zum/Speicherort/backups/';
// Namer der zur übertragende Datei
$backup_file ="Name_der_Datei";
$connection = ssh2_connect("$extern_host", 22);
// Authentifizierung mit Benutzername und Passwort
ssh2_auth_password($connection, "$extren_user", "$extern_password");
// Datei von lokalem Pfad auf Remote-Server übertragen
ssh2_scp_send($connection, "$backup_path$backup_file", '/exterener/server/pfad/zum/$backup_file"', 0644);
?>
Nachträgliche Installation der PHP-Erweiterung SSH2
Listing 2: Installation von SSH2 via apt
apt install php-ssh2