WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как сделать резервную копию приложения Laravel и сохранить ее на Amazon S3

138

Раньше я публиковал статью о локальном хранении резервной копии 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файл и установите имя «disks» как «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. Вы найдете zip резервной копии в своем ведре S3. ZIP-архив с резервной копией содержит файлы вашего приложения, папки и хранилище базы данных.

Как сделать резервную копию приложения 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 для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее