Как сделать резервную копию приложения Laravel
Вы хотите сделать или запланировать резервное копирование приложения 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. Мы настоятельно рекомендуем регулярно делать резервные копии и защищать ваше приложение от любых вредоносных обстоятельств.
Статьи по Теме
- Как сделать резервную копию приложения Laravel и сохранить ее на Amazon S3
- Отправка электронной почты через SMTP-сервер Gmail в Laravel
- Как установить и использовать CKEditor в Laravel