✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man tar backup av Laravel Application och lagrar det på Amazon S3

22

Tidigare har jag publicerat en artikel som lagrar Laravel-backup lokalt på servern. Även om vi i den artikeln diskuterade lagring av en säkerhetskopia på värdservern rekommenderas det inte ett sätt att lagra. Det säkrare alternativet att lagra säkerhetskopiering finns i molnet. Det kan hända att din server kraschar och du förlorar applikationen tillsammans med lokalt lagrade säkerhetskopior. I dessa värsta scenarier, om du har en säkerhetskopia lagrad i molnet kan du enkelt återställa den när som helst.

Med tanke på vikten av säkerhetskopiering studerar vi i den här artikeln hur man säkerhetskopierar en Laravel-applikation och lagrar den på Amazon s3. För att uppnå vårt mål använder vi både Laravel Filesystem och paketet utvecklat av Spatie.

Få dina AWS-säkerhetsuppgifter

För att komma igång bör du först ha ett konto på Amazon S3. När du har skapat kontot, se till att du har aktiverat S3-tjänsten genom att följa AWS-verifieringsprocessen.

Efter att ha aktiverat S3-tjänsten, få dina säkerhetsuppgifter som vi behöver om några ögonblick. Du får det genom att klicka på länken "My Security Credentials".

Hur man tar backup av Laravel Application och lagrar det på Amazon S3

Konfigurera S3 Driver i Laravel

Gå över till din kodredigerare och öppna filen config/filesystems.php. I den här filen kan du se att S3-detaljer ställs in med env()metoden. Det betyder att du måste ange dina S3-referenser i .envfil.

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

Öppna din .envfil och lägg till AWS S3-referenserna i den. Du behöver inte ställa in AWS_URL-värde eftersom det är valfritt.

.env

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=

Innan du använder S3 måste du installera lämpligt paket via Composer:

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

Installera och konfigurera Spatie’s Library

Innan du installerar Spatis bibliotek, se till att ditt system uppfyller paketkraven. Läs mer om det på sidan Krav.

Om du använder en äldre version av Laravel, kolla in en av de tidigare versionerna av dessa paket på v6, v5, v4.

Låt oss installera paketet genom att köra kommandot nedan:

composer require spatie/laravel-backup

När biblioteket har installerats kör du nästa kommando nedan som publicerar konfigurationsfilen till config/backup.php.

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

Öppna config/backup.phpfilen och ställ in namnet ‘diskar’ som ‘s3’. Genom att göra det ber vi detta paket att lagra Laravel-säkerhetskopian på Amazon S3-hinken.

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

Det finns även andra konfigurationer i den här filen. En användare kan inkludera och utesluta kataloger för säkerhetskopiering. För inkludera är värdet base_path()och för exkluderar alternativvärden base_path('vendor'), base_path(‘node_modules’). Det betyder att inte inkludera vendoroch nod_modulesmappar i den slutliga säkerhetskopian.

Lagra säkerhetskopian av Laravel-applikationen på Amazon S3

Vi är klara med alla grundläggande konfigurationer som krävs för att lagra Laravel-säkerhetskopiering på Amazon S3. Nu kan vi lagra vår första säkerhetskopia. Öppna terminalen i din projektkatalog och kör kommandot:

php artisan backup:run

Ovanstående kommando säkerhetskopierar din Laravel-applikation på AWS. Du hittar zip-filen för säkerhetskopian i din S3-hink. Backup-zip innehåller dina applikationsfiler, mappar och databaslager i den.

Hur man tar backup av Laravel Application och lagrar det på Amazon S3

Detta bibliotek tillåter också schemaläggning av en säkerhetskopieringsprocess. Du kan automatisera din säkerhetskopieringsuppgift. För detta, lägg till nedanstående kod i app/Console/Kernel.phpfilen.

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

Här ställer jag in daglig säkerhetskopia kl 06:00. Användaren kan ändra den här tiden enligt deras krav.

Jag hoppas att du förstår hur du tar en säkerhetskopia av Laravel-applikationen och lagrar den på Amazon S3. Jag skulle vilja höra dina tankar och förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer