2017年2月24日金曜日

Composerで「the requested PHP extension curl is missing from your system」のエラー

Composerで「the requested PHP extension curl is missing from your system」のエラーが出たので、対処です。環境はUbuntu 16.04。php-curlが入っていないために出ているエラーらしい。というわけで、インストールです。

$ sudo apt-get install php7.0-curl
# あるいは、
$ sudo apt-get install php5-curl

参考サイト
Composer install error - requires ext_curl when it's actualy enabled(Stack Overflow)

2017年2月23日木曜日

Laravel5.4でDropboxにバックアップ

Laravel5.4で、Dropboxにバックアップです。Tim Lelandさんのブログに書かれている通りに試してみました。見事にDropbox上に、バックアップが保存されています。感動であります!

まずは、Dropbox APIのAppを作成。OAuth用のアクセストークンを取得する。

.env(「Access Token」は「App key」とは違うので注意)
DROPBOX_ACCESS_TOKEN=abcdefghijklmn1234567890
DROPBOX_APP_SECRET=abcdefghijklmn

Dropbox用のファイルシステムアダプター「league/flysystem-dropbox」を追加。

サービスプロバイダを作成
$ php artisan make:provider DropboxFilesystemServiceProvider

/app/Providers/DropboxFilesystemServiceProvider.php
namespace App\Providers;

use Storage;
use League\Flysystem\Filesystem;
use Dropbox\Client as DropboxClient;
use League\Flysystem\Dropbox\DropboxAdapter;
use Illuminate\Support\ServiceProvider;

class DropboxFilesystemServiceProvider extends ServiceProvider
{
  public function boot()
  {
    Storage::extend('dropbox', function ($app, $config) {
      $client = new DropboxClient($config['accessToken'], $config['appSecret']);

      return new Filesystem(new DropboxAdapter($client));
    });
  }
}

/config/app.php(サービスプロバイダを登録)
  'providers' => [
    App\Providers\DropboxFilesystemServiceProvider::class,
  ],

/config/filesystems.php(ファイルシステムの設定に「dropbox」を追加)
  'disks' => [
    'dropbox' => [
      'driver' => 'dropbox',
      'accessToken' => env('DROPBOX_ACCESS_TOKEN'),
      'appSecret' => env('DROPBOX_APP_SECRET'),
    ]
  ],

/config/laravel-backup.php(laravel-backupの保存先を「dropbox」に変更)
  'destination' => [
    'disks' => [
      'dropbox',
    ],
  ],

あとは、こちらの要領でバックアップ



参考サイト
Backup your Laravel 5 App to Dropbox(Tim Lelandさん)
thephpleague/flysystem-dropbox: Flysystem Adapter for Dropbox(GitHub)
Laravel5.4でバックアップ「spatie/laravel-backup」

2017年2月22日水曜日

Laravel5.4でバックアップ「spatie/laravel-backup」

Laravel5.4で、バックアップ「spatie/laravel-backup」を設定してみました。データベース、プログラムファイル、その他諸々、まとめてバックアップできます。

/config/app.php
  'providers' => [
    Spatie\Backup\BackupServiceProvider::class,
  ],
/config/laravel-backup.php を作成する
$ php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

/config/laravel-backup.php が出来上がるので、適当に編集。

コマンド確認
$ php artisan list

 backup
  backup:clean         Remove all backups older than specified number of days in config.
  backup:list          Display a list of all backups.
  backup:monitor       Monitor the health of all backups.
  backup:run           Run the backup.
バックアップ実行
$ php artisan backup:run

/config/laravel-backup.php の設定で保存先の「disks」が「local」のままだと、

/storage/app/

ディレクトリの中に、データベースからプログラムファイルから、その他諸々、ごっそりzipファイルでバックアップされます。素晴らしい。



参考サイト
Installation and setup(Laravel Backup Docs)