Laravelでの開発案件に参加して環境構築をしていく際にどんなコマンドを打ってどこの設定を書き換えて~というTipsです。
Laravel自体の環境構築については以下記事で解説しています。
Ubuntu16.4にPHP7.2を入れ、Laravelをインストールするまでの手順
環境変数の設定
Laravelのアプリケーションのディレクトリ構成は、どんなプロジェクトでも当然だいたい同じようになっています。
ディレクトリ構成については以下の記事が参考になります。
https://qiita.com/shosho/items/93cbff79376c41c3a30b
しかし、Gitで管理しているソースをクローンしてきた場合には、Laravel new ~で新規にアプリケーションを作ったときと違い、足りないディレクトリやファイルがあるはずです。Git管理に含んでいないディレクトリやファイルというのは個々で設定する必要があるファイルということなので、まずは環境変数等のファイルを作るところから始めます。それが具体的にいうところのvenderディレクトリと.envファイルです。
venderディレクトリの作成
プロジェクトがあるディレクトリ配下で以下コマンドを実行することでvenderディレクトリが出来上がります。
composer install
.envファイルの作成
.env.exampleがあるかと思いますので、.envにリネームし、ファイルの中身を適した内容に変更します。
DBを外部サーバーに繋げる必要があるときはDB_HOSTに外部サーバーを指定し、ユーザー名パスワード等を指定します。
APP_NAME=Laravel APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
.envファイルで正しくDB設定しているのに接続できないというときは、設定元のconfig > database.phpをみてみるといいかもしれません。database.phpでenvファイルから設定を読まずに直接定義している場合には当然この.envの設定が読み込まれないので。
envファイルのappkeyの初期化を行うために、以下コマンドを実行
php artisan key:generate
DBの設定
migrate
DBは外部サーバーを参照するといった場合には不要ですが、DB構成もローカルに作るという場合には、使用するDBのインストールから始めます。
次にdatabase > migrarionsディレクトリを見に行き、migrationファイルがずらっと並んでいるようであれば、以下のコマンドでテーブルを一発で作ります。
php artisan migrate
seed
次にdatabase > seedsを見に行き、ここにもずらっとファイルがあるとすれば、テストデータも取得することができるので、以下コマンドを実行します
php artisan db:seed
パッケージの設定
前項まで書いた内容はだいたいほとんどのプロジェクトでやる必要がありそうです。
この先はそれでも動かない、なんかライブラリ足りてないんじゃないの?といったときに参考になるかもしれません。
特にVue.jsを使っている場合は以下からの作業も必要です。
package.json
必要なパッケージなどが管理されているpackage.jsonを見てみましょう。これを動かすためにはまずnode.jsとnpmが必要になってくるので、以下コマンドで確認。
node -v npm -v
インストールされていない場合にはまずインストールしておきます。
説明が参考になったURLを以下に記載しておきます。
https://ferret-plus.com/6104
https://qiita.com/seibe/items/36cef7df85fe2cefa3ea
node.jsとnpm本体のインストールが終わったら、packege.jspnで管理されたパッケージをインストールするために以下コマンドを実行します。
npm install
エラーがなく通ればオッケーですが、WARNが気になったので解消します
ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed
ajv@^6.0.0のピアが必要だから自分でインストールしろとのこと
npm install ajv@^6.0.0
package.jsonに記載されているlaravel-mixを使用することで、scssファイルをコンパイルしてpublic/cssに配置するということをしてくれます。さらに、Vueで書かれたjsもコンパイルしてpublic配下に配置してくれます。
buildは以下のコマンド
npm run dev
開発時は以下のようにすることで変更があると自動でbuildしてくれる
npm run watch
npm run hotでも良いと書いてあった。(試していない)
npm run watchでファイル更新時にうまくbuildが走らないときは以下を試してみる
npm run watch-poll
laravel-mixの処理の内容が書いてあるのはwebpack.mix.jsの以下の箇所です。
mix.js('resources/assets/js/app.js', 'public/js') .extract(['vue']); mix.sass('resources/assets/sass/app.scss', 'public/css');
この辺りは公式にもきちんと書いてあります。
https://readouble.com/laravel/5.5/ja/frontend.html