✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як зробити резервну копію програми Laravel та зберегти її на Amazon S3

26

Раніше я публікував статтю про локальне зберігання резервної копії Laravel на сервері. Хоча в цій статті ми обговорювали збереження резервної копії на хостинговому сервері, не рекомендується спосіб зберігання. Безпечніший варіант зберігання резервної копії – у хмарі. Можливо, ваш сервер зазнає аварії, і ви втратите програму разом із локально збереженими резервними копіями. У цих найгірших сценаріях, якщо у вас є резервна копія, що зберігається в хмарі, її можна легко повернути в будь-який час.

Розглядаючи важливість резервного копіювання, у цій статті ми вивчаємо, як зробити резервну копію програми Laravel та зберегти її на Amazon s3. Для досягнення нашої мети ми будемо використовувати як файлову систему Laravel, так і пакет, розроблений Spatie.

Отримайте свої облікові дані безпеки AWS

Для початку спочатку слід мати обліковий запис на Amazon S3. Після створення облікового запису переконайтеся, що ви активували послугу S3, дотримуючись процесу перевірки AWS.

Після активації служби S3 отримайте свої облікові дані безпеки, які нам знадобляться через кілька хвилин. Ви отримаєте його, натиснувши на посилання "Мої облікові дані безпеки".

Як зробити резервну копію програми Laravel та зберегти її на Amazon S3

Налаштуйте драйвер S3 в Laravel

Перейдіть до редактора коду та відкрийте файл config/filesystems.php. У цьому файлі ви можете побачити деталі S3, встановлені за допомогою env()методу. Це означає, що вам потрібно встановити свої облікові дані S3 у .envфайлі.

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

Відкрийте .envфайл і додайте до нього облікові дані AWS S3. Не потрібно встановлювати значення AWS_URL, оскільки воно є необов’язковим.

.env

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=

Перед використанням S3 вам потрібно буде встановити відповідний пакет через Composer:

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

Встановіть та налаштуйте бібліотеку Spatie

Перш ніж встановлювати бібліотеку Spatie, переконайтеся, що ваша система відповідає вимогам пакету. Докладніше про це читайте на їхній сторінці вимог.

Якщо ви використовуєте стару версію Laravel, перевірте одну з попередніх версій цього пакета на v6, v5, v4.

Давайте встановимо пакет, виконавши команду нижче:

composer require spatie/laravel-backup

Після встановлення бібліотеки запустіть наступну команду, яка опублікує файл конфігурації config/backup.php.

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

Відкрийте config/backup.phpфайл і встановіть ім’я "диски" як "s3". Роблячи це, ми просимо цей пакет зберігати резервну копію Laravel у відрі Amazon S3.

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

У цьому файлі також доступні інші конфігурації. Користувач може включати та виключати каталоги для резервного копіювання. Для включення значення становить, base_path()а для виключення значення значення base_path('vendor’), base_path(‘node_modules’). Це означає, що не включати vendorта nod_modulesпапки в остаточну резервну копію.

Зберігайте резервну копію програми Laravel на Amazon S3

Ми закінчили з усіма основними конфігураціями, необхідними для зберігання резервної копії Laravel на Amazon S3. Тепер ми можемо зберегти нашу першу резервну копію. Відкрийте термінал у кореневому каталозі проекту та запустіть команду:

php artisan backup:run

Вищевказана команда створить резервну копію вашої програми Laravel на AWS. Ви знайдете поштову копію резервної копії у своєму сегменті S3. Архів резервної копії містить у ній файли програм, папки та сховище баз даних.

Як зробити резервну копію програми Laravel та зберегти її на Amazon S3

Ця бібліотека також дозволяє планувати процес резервного копіювання. Ви можете автоматизувати завдання резервного копіювання. Для цього додайте нижче вказаний код у app/Console/Kernel.phpфайл.

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

Тут я встановлюю щоденне резервне копіювання о 06:00. Користувач може змінити цей час відповідно до своїх вимог.

Сподіваюся, ви розумієте, як зробити резервну копію програми Laravel та зберегти її на Amazon S3. Я хотів би почути ваші думки та пропозиції у розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі