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

【Laravel 5.5】Homesteadでの環境構築メモ

More than 1 year has passed since last update.

【Laravel 5.5】Homesteadでの環境構築

0. 始めに

二つ目以降のプロジェクトを作成するときに、作り方を忘れるのでメモ.
おそらく 5系なら同様の操作で構築可能です.
これを読むよりも、公式を読んだほうが正確だとおもいます.

0.1 環境

  • プロジェクト名: thunder
  • テスト用のサイトURL: thunder.test
  • データベース名: thunder

  • windows 10 64bit
  • vagrant 2.0.0
  • Homestead(virtualbox 4.0.0)
  • PHP 7.1.13
  • Laravel 5.5
  • mysql 5.7

  • 事前に vagranthomesteadcomposerlaravel installer の設定が終了している前提
  • 日本国内で使うサイトを想定
  • ユーザー認証あり
  • 二つ書いてあったら、上がサンプル、下が実行例

0.2 リンク

Laravel
http://laravel.jp/

ReadDouble
https://readouble.com/laravel/5.5/ja/installation.html

1. サイトの初期起動まで

vagrant 環境に接続する

vagrant up
vagrant ssh

1.1 vagrant 環境に laravel のインストール

$ cd ~/Code
$ composer create-project --prefer-dist "laravel/laravel=5.5.*" <プロジェクト名>
$ cd ~/Code
$ composer create-project --prefer-dist "laravel/laravel=5.5.*" treeking
  • 個人的にはアプリケーション名を付けることが多い
  • 実行する際のディレクトリに注意
  • ディレクトリが存在すると作成失敗
  • laravel new <アプリケーション> だと、最新のバージョンがダウンロードされる
  • 私の環境では composer を使用したほうが確実(な場合が多い)

1.2 windows の homestead.yaml にサイトの情報を追加

Homestead.yaml
sites:
  - map: <テストドメイン名>
    to: /home/vagrant/Code/<プロジェクト名>/public
Homestead.yaml
sites:
  - map: thunder.test
    to: /home/vagrant/Code/thunder/public
  • 私の環境では C:\Users\<ユーザー名>\.homestead\Homestead.yaml
  • 編集には TeraPadatom を使用する
  • map と to の組みで複数記載可能

1.3 windows の hosts にサイトの情報を追加

hosts
<テスト用のIPアドレス>     <テスト用のサイトのURL>
hosts
192.168.xxx.yyy  thunder.test
  • 私の環境では C:\Windows\System32\drivers\etc\hosts
  • chrome では .app 等の開発ドメインは使用できなくなりました
  • 個人的には <アプリケーション名>.testで統一
  • laravel では public ディレクトリをルートにする
  • hosts は即時適応されるらしい
  • 会社などでプロキシ等が設定されている場合、 hosts を見てくれない可能性がある
  • そのような場合は素直に php artisan serve でアクセス(-p でのポート指定をおすすめ)

参考:Google Chromeで.devなどの開発DomainがHTTPSに変更される。
https://qiita.com/lara_bell/items/f7f3c5189530090229ed

1.4 windows で vagrant 環境に設定を読み込ませる

vagrant provision

1.5 chrome でアクセス確認

  • 今回の場合は http://thunder.test/ にアクセス
  • 失敗する場合は以下のファイルにヒントがある可能性がある
  • <プロジェクト名>/storage/logs/laravel.log
  • nginx や apache のログ

1.6 github 等に上げる(スキップ可能)

$ cd thunder
$ vim ./readme.md
$ vim ./.gitignode

$ git init
$ git config user.name "<gitのユーザー名>"
$ git config user.email <gitのメールアドレス>
$ git add --all
$ git commit -m "first commit"
$ git remote add origin https://github.com/<githubユーザー名>/<リポジトリ名>.git
$ git push -u origin master
  • 先に github でリポジトリを作成しておく.
  • Initialize this repository with a README のチェックを入れると、勝手にコミットされているので注意.
  • readme.md が laravel のものなので、自身のものに修正.
  • お好みで .gitignore の編集を.
  • ユーザー名とメールアドレスを指定すると、コミットした人が分かる.

  • first commit はまっさらな状態が良い.(個人的こだわり)

  • 個人的にはコマンドで git を扱うのはここまで. ここからは素直に Sourcetree を使う.

2. laravel の開発開始まで

ここからはお好みで.
以下、オレオレ環境用メモ.

2.1 vagrant 環境で各種ライブラリを入れる

PHP のライブラリ

$ composer require "doctrine/dbal"

Laravel のライブラリ

$ composer require "laravelcollective/html":"^5.5"
$ composer require "barryvdh/laravel-ide-helper"
$ composer require "barryvdh/laravel-debugbar --dev"

$ php artisan vendor:publish
  • バージョン指定はいい感じにしてください
  • パージョンが足りなければエラーが出るため、それに従う感じで
  • laravel 5.5 から package discover が導入されたため、対応していれば config をいじらなくても良くなった
  • 対応していない場合は、各種 github 等を読んで config の書き換え
  • おすすめがある場合は、教えてください(懇願)

LaravelCollective/html
https://github.com/LaravelCollective/html

barryvdh/laravel-ide-helper
https://github.com/barryvdh/laravel-ide-helper

barryvdh/laravel-debugbar
https://github.com/barryvdh/laravel-debugbar

2.2 vagrant 環境で laravel の環境設定を行う

.env
APP_NAME=<お好みで ex)thunder_local>
APP_URL=<サイトのURL>
DB_DATABASE=<データベース名>

DEBUGBAR_ENABLED=true
config/app.php
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'fallback_locale' => 'en',
// 英語のリソースをコピー
$ cp -r ./resources/lang/en ./resources/lang/ja
  • lang/ja は適宜日本語化する
  • 翻訳は先人の力を借りるべし(ぱっと見つけたものを以下に記載)

rito-nishino/Laravel5.5-Japanese-Language-fileset
https://github.com/rito-nishino/Laravel5.5-Japanese-Language-fileset

sutara79
https://gist.github.com/sutara79

2.3 Model をフォルダに移動する

config/auth.php
'providers' => [
  'users' => [
    'model' => App\Models\User::class,  
  ],
],
$ mkdir ./app/Models
$ mv ./App/User.php ./App/Models/User.php

$ vim ./App/Models/User.php
  - namespace App;
  + namespace App/Models;

$ php artisan dump-autoload
  • 大体 model が多くなるので早めに対処
  • この辺りは開発者の好みになると思われる

2.4 DB の準備と認証機能の実装

$ mysql -u <mysql ユーザー名> -p -e "CREATE DATABASE <データベース名>;"

$ php artisan make:auth
$ php artisan migrate
  • laravel にはログインシステムが既に用意されている
  • 大抵これで事足りる(拡張がいる場合もこれをベースとすることが多い)

2.5 chrome でアクセス確認 その2

  • 今回の場合は http://thunder.test/ にアクセス
  • 右上に LOGINREGISTER が生えているはず
  • 失敗する場合は、大体データベースが悪い

3. html 周り

また今度

4. 終わりに

  • Laravel 便利!
mabasasi
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