So erstellen Sie ein Backup der Laravel-Anwendung und speichern es auf Amazon S3
In der Vergangenheit habe ich einen Artikel veröffentlicht, in dem das Laravel-Backup lokal auf dem Server gespeichert wird. Obwohl wir in diesem Artikel das Speichern eines Backups auf dem Hosting-Server besprochen haben, wird dies nicht als Speichermethode empfohlen. Die sicherere Option zum Speichern von Backups ist in der Cloud. Es kann vorkommen, dass Ihr Server abstürzt und Sie die Anwendung zusammen mit lokal gespeicherten Backups verlieren. Wenn Sie in diesen schlimmsten Szenarien ein Backup in der Cloud gespeichert haben, können Sie es jederzeit problemlos wiederherstellen.
In Anbetracht der Bedeutung der Sicherung untersuchen wir in diesem Artikel, wie eine Laravel-Anwendung gesichert und auf Amazon s3 gespeichert wird. Um unser Ziel zu erreichen, verwenden wir sowohl das Laravel Filesystem als auch das von Spatie entwickelte Paket.
Holen Sie sich Ihre AWS-Sicherheitsanmeldeinformationen
Um loszulegen, sollten Sie zunächst ein Konto bei Amazon S3 haben. Stellen Sie nach dem Erstellen des Kontos sicher, dass Sie den S3-Service aktiviert haben, indem Sie dem AWS-Verifizierungsprozess folgen.
Nachdem Sie den S3-Dienst aktiviert haben, erhalten Sie Ihre Sicherheitsdaten, die wir in wenigen Augenblicken benötigen. Sie erhalten es, indem Sie auf den Link „Meine Sicherheitsanmeldeinformationen” klicken.
Konfigurieren Sie den S3-Treiber in Laravel
Gehen Sie zu Ihrem Code-Editor und öffnen Sie die Datei config/filesystems.php
. In dieser Datei können Sie sehen, dass S3-Details mit der env()
Methode festgelegt werden. Das bedeutet, dass Sie Ihre S3-Anmeldeinformationen in der .env
Datei festlegen müssen .
config/filesystems.php
<?php
return [
.....
'disks' => [
.....
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
...
...
];
Öffnen Sie Ihre .env
Datei und fügen Sie die AWS S3-Anmeldeinformationen hinzu. Es ist nicht erforderlich, den AWS_URL-Wert festzulegen, da er optional ist.
.env
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
Bevor Sie den S3 verwenden, müssen Sie das entsprechende Paket über Composer installieren:
composer require league/flysystem-aws-s3-v3 ~1.0
Installieren und konfigurieren Sie die Bibliothek von Spatie
Stellen Sie vor der Installation der Spatie-Bibliothek sicher, dass Ihr System die Paketanforderungen erfüllt. Lesen Sie mehr darüber auf der Seite Anforderungen.
Wenn Sie eine ältere Version von Laravel verwenden, überprüfen Sie eine der vorherigen Versionen dieses Pakets unter v6, v5, v4.
Lassen Sie uns das Paket installieren, indem Sie den folgenden Befehl ausführen:
composer require spatie/laravel-backup
Sobald die Bibliothek installiert ist, führen Sie den nächsten Befehl unten aus, der die Konfigurationsdatei in config/backup.php
.
php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"
Öffnen Sie die config/backup.php
Datei und legen Sie den Namen der ‘Festplatten’ als ‘s3’ fest. Dabei weisen wir dieses Paket an, das Laravel-Backup im Amazon S3-Bucket zu speichern.
<?php
...
...
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
's3',
],
In dieser Datei sind auch andere Konfigurationen verfügbar. Ein Benutzer kann die Verzeichnisse für die Sicherung ein- und ausschließen. Für das Einschließen ist der Wert base_path()
und für die Ausschlussoption sind die Werte base_path('vendor'), base_path(‘node_modules’)
. Es bedeutet nicht enthalten vendor
und nod_modules
Ordner in der letzten Sicherung.
Speichern Sie das Backup der Laravel-Anwendung auf Amazon S3
Wir sind mit allen grundlegenden Konfigurationen fertig, die zum Speichern von Laravel-Backups auf Amazon S3 erforderlich sind. Jetzt können wir unser erstes Backup speichern. Öffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und führen Sie den Befehl aus:
php artisan backup:run
Der obige Befehl sichert Ihre Laravel-Anwendung auf AWS. Sie finden die ZIP-Datei des Backups in Ihrem S3-Bucket. Die Backup-ZIP-Datei enthält Ihre Anwendungsdateien, Ordner und den Datenbankspeicher.
Diese Bibliothek ermöglicht auch die Planung eines Backup-Prozesses. Sie können Ihre Backup-Aufgabe automatisieren. Fügen Sie dazu den folgenden Code in die app/Console/Kernel.php
Datei ein.
<?php
...
...
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('06:00');
}
Hier habe ich das tägliche Backup auf 06:00 eingestellt. Der Benutzer kann diese Zeit nach seinen Anforderungen ändern.
Ich hoffe, Sie verstehen, wie Sie ein Backup der Laravel-Anwendung erstellen und auf Amazon S3 speichern. Ich würde gerne Ihre Gedanken und Vorschläge im Kommentarbereich unten hören.
Zum Thema passende Artikel
- So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch
- Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK
- Backup der Laravel-Anwendung auf Dropbox