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

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

368

Вы хотите сделать или запланировать резервное копирование приложения Laravel? Всегда полезно хранить резервную копию базы данных и файловой системы Laravel. Вы должны иметь резервную копию в любое время, если что-то пойдет не так с вашим сервером или приложением. В этой статье мы изучаем, как сделать резервную копию приложения Laravel с базой данных.

Если вы используете веб-сайт WordPress, есть плагины, такие как Updraftplus, которые позволяют нам хранить резервные копии на сервере или в облаке. Но когда дело доходит до Laravel, нет такого понятия, как плагин. В Laravel нам нужно установить библиотеки и настроить их.

Spatie разработал пакет под названием laravel-backup, который полезен для хранения резервных копий Laravel. Этот пакет также предоставляет возможность планировать процесс резервного копирования.

При этом давайте посмотрим, как сделать резервную копию приложения Laravel с базой данных.

Начиная

Последняя версия этого пакета требует PHP 7.2 или выше с модулем ZIP и Laravel 5.7 или выше. Если вы используете старую версию Laravel, тогда доступны версии 5 и 4 этого пакета.

В этом руководстве мы используем последнюю версию этой библиотеки. Сначала вам нужно установить пакет, выполнив следующую команду:

composer require spatie/laravel-backup

После установки пакета выполните следующую команду, которая опубликует файл конфигурации в config/backup.php.

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

Перейдите в каталог конфигурации и откройте backup.phpв редакторе.

<?php
 
return [
 
        .......
 
        'source' => [
 
            'files' => [
 
                /*
                 * The list of directories and files that will be included in the backup.
                 */
                'include' => [
                    base_path(),
                ],
 
                /*
                 * These directories and files will be excluded from the backup.
                 *
                 * Directories used by the backup process will automatically be excluded.
                 */
                'exclude' => [
                    base_path('vendor'),
                    base_path('node_modules'),
                ],
 
                /*
                 * Determines if symlinks should be followed.
                 */
                'followLinks' => false,
            ],
 
        .......
 
        'destination' => [
 
            /*
             * The filename prefix used for the backup zip file.
             */
            'filename_prefix' => 'GIVE_PREFIX_HERE',
 
            /*
             * The disk names on which the backups will be stored.
             */
            'disks' => [
                'local',
            ],
        ],
    ],
 
    ......
 
        /*
         * Here you can specify the notifiable to which the notifications should be sent. The default
         * notifiable will use the variables specified in this config file.
         */
        'notifiable' => SpatieBackupNotificationsNotifiable::class,
 
        'mail' => [
            'to' => 'YOUR_EMAIL_ADDRESS',
        ],
 
    ......
        

В этом файле вам нужно заменить 2 заполнителя GIVE_PREFIX_HERE и YOUR_EMAIL_ADDRESS. Для GIVE_PREFIX_HERE вы можете указать любой префикс, например имя вашего проекта. Это просто префиксное имя для zip-файла резервной копии.

Пользователь также может включать и исключать каталоги для резервного копирования. Для включения мы передали значение base_path(), а для параметра исключения значениями являются base_path (‘vendor’), base_path (‘node_modules’). Это означает, что не включайте папки vendor и nod_modules в окончательную резервную копию.

Мы также передаем значение диска как «локальное». При этом наша резервная копия будет сохранена в storage/app/Laravelпапке. Мы также можем хранить наши резервные копии на внешнем хранилище, таком как s3, Rackspace, SFTP и т.д. Эти параметры внешнего хранилища требуют некоторых дополнительных шагов для настройки с файловой системой Laravel. Подробнее об этом мы поговорим в следующей статье. Если вы ищете внешнее хранилище, прочтите документацию Laravel.

Резервное копирование приложения Laravel

На этом мы закончили установку и настройку. Теперь мы все настроены на запуск нашей первой резервной копии. Откройте терминал в корневом каталоге вашего проекта и выполните команду:

php artisan backup:run

Вышеупомянутая команда создаст резервную копию приложения Laravel. Вы найдете zip-архив с резервной копией в папке storage/app/Laravel. Архивный zip-архив содержит файлы вашего приложения, папки и хранилище базы данных.

Эта библиотека также позволяет нам планировать процесс резервного копирования. Мы можем автоматизировать нашу задачу резервного копирования. Для этого вы должны написать в app/Console/Kernel.phpфайле нижеприведенный код .

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

Устанавливаем ежедневное резервное копирование на время 06:00. Пользователь может изменить это время по своему усмотрению.

Это оно! Все дело в создании резервной копии приложения Laravel. Мы настоятельно рекомендуем регулярно делать резервные копии и защищать ваше приложение от любых вредоносных обстоятельств.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее