【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
- 事前に
vagrant
とhomestead
、composer
とlaravel 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 にサイトの情報を追加
sites:
- map: <テストドメイン名>
to: /home/vagrant/Code/<プロジェクト名>/public
sites:
- map: thunder.test
to: /home/vagrant/Code/thunder/public
- 私の環境では
C:\Users\<ユーザー名>\.homestead\Homestead.yaml
- 編集には
TeraPad
やatom
を使用する - map と to の組みで複数記載可能
1.3 windows の hosts にサイトの情報を追加
<テスト用のIPアドレス> <テスト用のサイトのURL>
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/htmlbarryvdh/laravel-ide-helper
https://github.com/barryvdh/laravel-ide-helperbarryvdh/laravel-debugbar
https://github.com/barryvdh/laravel-debugbar
2.2 vagrant 環境で laravel の環境設定を行う
APP_NAME=<お好みで ex)thunder_local>
APP_URL=<サイトのURL>
DB_DATABASE=<データベース名>
DEBUGBAR_ENABLED=true
'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-filesetsutara79
https://gist.github.com/sutara79
2.3 Model をフォルダに移動する
'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/
にアクセス - 右上に
LOGIN
とREGISTER
が生えているはず - 失敗する場合は、大体データベースが悪い
3. html 周り
また今度
4. 終わりに
- Laravel 便利!