Help us understand the problem. What is going on with this article?

Laravel Sparkをインストールする

More than 1 year has passed since last update.

概要

Laravel SparkというサービスをLaravelユーザーの方はご存知でしょうか?
名前は聞いた事ありましたが具体的にどんなものか知らなかったのでLaravelユーザーとしては使ってみようという事でインストールしてみました。

公式ドキュメント通りに環境構築しても、色々とハマったりしたので今後試す人の参考になればと。

Laravel Sparkとは?

Laravel SparkとはLaravel + Vue.jsで作成されたWebアプリケーションテンプレート。
有料ライセンスでありソフトウェアをインストールすると次のような機能がすでに実装されている。

  • 認証
  • 顧客の請求書ダウンロード
  • サブスクリプション
  • チームでのユーザー作成、招待
  • 二段階認証
  • ユーザー向けAPIトークンの作成
  • ユーザー偽装してのデバッグ機能 etc...

上記のような機能はすでに提供されるのでよりサービスに近い部分に開発を注力できるというのが特徴です。
このような機能や画面をLaravel + Vue.jsで作成できるというのもメリットですね。

Laravel Sparkをインストールする前に...

公式ドキュメントによるとLaravel Sparkは次のコンポーネントで構成されていると記載があります。

  • Composer
  • Laravel Framework 5.6+
  • Laravel Mix
  • Bootstrap 4 (SASS)
  • Node.js & NPM

Vue.jsはもちろん使えますが、他のJSフレームワークを使用するのも自由なようです。

ライセンス

Laravel Sparkは有料ライセンスになっています。
公式サイトによると次のような料金体系になっています。

  • 1つのWebサイトで使用する場合: $99
  • 無制限に使用する場合: $299

環境構築

以下の環境でインストールしました。

  • MacOSX Sierra
  • Composer1.6.3
  • PHP7.2.3
  • MYSQL5.7.19
  • npm5.6.0

インストール

まずはLaravel Sparkに登録が必要です。公式サイトのRegisterからアカウント登録しましょう。
lisenceを購入してないとインストールできないようです。試す方はクレジットカード登録し$99のライセンスを購入します。

ライセンス購入後、公式のLaravel SparkサイトにログインしGithubのリポジトリへJoinしましょう。Laravel Sparkの公式サイトにログインしていればSettings -> GithubからJoinできます。Joinをしておかないとパッケージをインストールする際に403で弾かれます。

Laravel Sparkをインストールするにはいくつか方法があります。
spark installerlaravel installerがありますが、どうも上手くできなかったのでcomposerコマンドからインストールしました。

まずはlaravelプロジェクトを作成します。
composernpmが事前に必要なため、事前にインストールしておいて下さい

$ composer create-project --prefer-dist laravel/laravel spark-sandbox

composer経由でインストールする場合はLaravel SparkのSatisリポジトリを登録する必要があるようです。composer.jsonに追記します。

composer.json
"repositories": [
    {
        "type": "composer",
        "url": "https://spark-satis.laravel.com"
    }
],

続いてcomposer.jsonrequire"laravel/spark-aurelius": "~6.0",を追加します。

$ composer require laravel/spark-aurelius:~6.0

決済サービスをStripeかBraintreeを使う場合で使用するパッケージは変わるようです。とりあえずインストールしたい場合は不要な気がしますが、僕はlaravel/cachierを選択してrequireに追加しました。

$ composer require laravel/cashier:~7.0

composer.jsonに必要パッケージを追加したらcomposer updateします。

$ composer update

これで依存ライブラリがインストールされます。vendorディレクトリにもろもろインストールされたらapp.phpにServiceProviderを登録します。

app.php
Laravel\Spark\Providers\SparkServiceProvider::class,
Laravel\Cashier\CashierServiceProvider::class,

登録したら次のコマンドを実行します。

$ php artisan spark:install --force

再度、app.phpにServiceProviderを登録します。 

app.php
App\Providers\SparkServiceProvider::class,

最後にnpm installnpm run devを実行します。

npm run devの時にcross-env not found errorが僕の環境では発生しました。package.jsonを見てみるとscriptsdevセクションでcross-envコマンドを使用していたので、npm i -g cross-envでglobalインストールして解決しました。

package.json
{
  "private": true,
  "scripts": {
    "dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
// 以下、省略

最後にphp artisan migrateを実行するため、.envに任意のデータベースの設定をします。

DB_DATABASE=spark_sandbox

データベースにアクセスできる状態になったらmigrateして必要なテーブルを作成します。

$ php artisan migrate

公式ドキュメントによるとstorageディレクトリへのSymlinkが必要との事なので以下のコマンドを実行します。

$ php artisan storage:link

ここまで出来たらビルドインサーバを起動してアクセスしてみます。

$ php artisan serve

結果

spark-top.png

所感

公式ドキュメント通りに試しましたがインストールするのに結構ハマりました...。
Laracastでも同じ箇所でハマっている人がいたので、あるあるなのかも知れません。

インストール後、2段階認証を試してみたのですが一行追加するだけで組み込めました。そちらは別のポストで記載できればと。

k-kurikuri
Goがお気に入りです
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした