...
✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak wykonać kopię zapasową aplikacji Laravel i przechowywać ją na Amazon S3?

11

W przeszłości publikowałem artykuł przechowujący kopię zapasową Laravela lokalnie na serwerze. Chociaż w tym artykule omówiliśmy przechowywanie kopii zapasowej na serwerze hostingowym, nie jest to zalecany sposób przechowywania. Bezpieczniejszą opcją przechowywania kopii zapasowej jest chmura. Może się zdarzyć, że Twój serwer ulegnie awarii i utracisz aplikację wraz z lokalnie przechowywanymi kopiami zapasowymi. W tych najgorszych scenariuszach, jeśli masz kopię zapasową przechowywaną w chmurze, możesz ją łatwo przywrócić w dowolnym momencie.

Biorąc pod uwagę znaczenie tworzenia kopii zapasowych, w tym artykule dowiemy się, jak wykonać kopię zapasową aplikacji Laravel i przechowywać ją na Amazon s3. Aby osiągnąć nasz cel, użyjemy zarówno systemu plików Laravel, jak i pakietu opracowanego przez Spatie.

Uzyskaj poświadczenia bezpieczeństwa AWS

Aby rozpocząć, powinieneś najpierw mieć konto na Amazon S3. Po utworzeniu konta upewnij się, że aktywowałeś usługę S3, wykonując proces weryfikacji AWS.

Po aktywacji usługi S3 uzyskaj swoje dane uwierzytelniające, których będziemy potrzebować za kilka chwil. Otrzymasz go, klikając link „Moje dane uwierzytelniające".

Jak wykonać kopię zapasową aplikacji Laravel i przechowywać ją na Amazon S3?

Skonfiguruj sterownik S3 w Laravel

Przejdź do edytora kodu i otwórz plik config/filesystems.php. W tym pliku widać, że szczegóły S3 są ustawiane przy użyciu env()metody. Oznacza to, że musisz ustawić swoje poświadczenia S3 w .envpliku.

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'),
        ],
    ...
    ...
];

Otwórz .envplik i dodaj do niego poświadczenia AWS S3. Nie ma potrzeby ustawiania wartości AWS_URL, ponieważ jest to opcjonalne.

.env

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=

Przed użyciem S3 musisz zainstalować odpowiedni pakiet przez Composer:

composer require league/flysystem-aws-s3-v3 ~1.0

Zainstaluj i skonfiguruj bibliotekę Spatie

Przed zainstalowaniem biblioteki Spatie upewnij się, że Twój system spełnia wymagania pakietu. Przeczytaj więcej na ten temat na ich stronie z wymaganiami.

Jeśli używasz starszej wersji Laravela, sprawdź jedną z poprzednich wersji tego pakietu na v6, v5, v4.

Zainstalujmy pakiet, uruchamiając poniższe polecenie:

composer require spatie/laravel-backup

Po zainstalowaniu biblioteki uruchom następne polecenie poniżej, które opublikuje plik konfiguracyjny do config/backup.php.

php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"

Otwórz config/backup.phpplik i ustaw nazwę ‘dysków’ na ‘s3’. Robiąc to, mówimy temu pakietowi, aby przechowywał kopię zapasową Laravel w wiadrze Amazon S3.

<?php
...
...
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
    's3',
],

W tym pliku dostępne są również inne konfiguracje. Użytkownik może dołączyć i wykluczyć katalogi do kopii zapasowej. W przypadku włączania wartość to, base_path()a dla opcji wykluczania wartości to base_path('vendor'), base_path(‘node_modules’). Oznacza to, że nie dołączaj folderów vendori nod_modulesdo ostatecznej kopii zapasowej.

Przechowuj kopię zapasową aplikacji Laravel na Amazon S3

Skończyliśmy ze wszystkimi podstawowymi konfiguracjami wymaganymi do przechowywania kopii zapasowej Laravel na Amazon S3. Teraz możemy przechowywać naszą pierwszą kopię zapasową. Otwórz terminal w katalogu głównym projektu i uruchom polecenie:

php artisan backup:run

Powyższe polecenie wykona kopię zapasową aplikacji Laravel na AWS. Zip kopii zapasowej znajdziesz w swoim wiadrze S3. Kopia zapasowa zip zawiera pliki aplikacji, foldery i magazyn bazy danych.

Jak wykonać kopię zapasową aplikacji Laravel i przechowywać ją na Amazon S3?

Ta biblioteka umożliwia również planowanie procesu tworzenia kopii zapasowej. Możesz zautomatyzować zadanie tworzenia kopii zapasowej. W tym celu dodaj do app/Console/Kernel.phppliku poniższy kod .

<?php
...
...
protected function schedule(Schedule $schedule)
{
    $schedule->command('backup:run')->daily()->at('06:00');
}

Tutaj ustawiam codzienną kopię zapasową na 06:00. Użytkownik może zmienić ten czas zgodnie z ich wymaganiami.

Mam nadzieję, że rozumiesz, jak wykonać kopię zapasową aplikacji Laravel i przechowywać ją na Amazon S3. Chciałbym usłyszeć wasze przemyślenia i sugestie w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów