LoginSignup
1
1

More than 3 years have passed since last update.

Laravel6.xを仮想環境に導入する(Vagrant - homestead 導入編)

Last updated at Posted at 2019-11-21

はじめに

laravel6になってからの構築手段とか初動について、いくつかQiita上にもあるものの、情報が一つで完結仕切らない部分が(少なくとも自分と同僚には)あったので、自分の通った道をまとめてみました。
初学者の一助になりましたら幸いです。

想定使用環境

対応OS

Windows 10 professional

…を想定していますが、他の環境でもほとんど同様に通ると思います。

使用ソフト

軽率に壊して作り直すのが容易となるメリットを享受したいため、仮想環境上につくります。

必須(手順に盛り込みます)

  • Oracle VM VirtualBox
  • Vagrant
  • Laravel Homestead

強く推奨(代替手段が分かる人はそれでも可)

  • git for windows
    • git bashを使用

推奨(代替手段がいっぱいあるのでお好みで)

  • エディタ
    • Visual Studio Code とか

なんか他にわかりやすい/面白い物があれば教えていただければ幸いです(小声)

実際に導入してみる

概要については以下の記事にほとんどまとまっています。

実際の導入もほぼ同様に可能…なのですが、ある程度補足はあるものの土台がlaravel5.4頃の記述なので、laravel6に即していない部分があったりするので注意。なお、本記事の段落とリンク先のstepを合わせて記述しています。

また、本来のLaravelのリファレンスもある程度読んでおくと良いでしょう。

仮想環境を入れる

1.VagrantとVirtal Boxのインストール

それぞれ
- https://www.vagrantup.com/downloads.html
- https://www.virtualbox.org/

から落としてください。参考までに、自分が使用したバージョン(11/10頃)

ソフト名 バージョン
Vagrant 2.2.6
VirtualBox 6.0.14

2.Homesteadのvagrant boxを導入

Windowsのcmdでも一応打てるはずですが、以降git bashの使用を推奨します。

(user名)@(PC名) MINGW64 ~
vagrant box add laravel/homestead

3.Homesteadのダウンロード

今回はデスクトップに作成するものとします。場所に関してはある程度考慮するのが良いと思います。初学者の人は一度試しに作ったあと、二回目に場所を変更すると応用問題になると思います(自分個人としてはデスクトップじゃない方がいいと思っています)。

(user名)@(PC名) MINGW64 ~(以下省略)
$ cd ~
$ pwd
/c/Users/(user名)
$ cd Desktop/
$ pwd
/c/Users/(user名)/Desktop/
$ git clone https://github.com/laravel/homestead.git ./Homestead

4.Homesteadの設定ファイルの作成

デスクトップにフォルダが増えていると思うので、直接フォルダを開いて、"init.bat"を動かしましょう(mac/linuxは移動して"bash init.sh")。

"homestead.yaml"が生成されます。

5.SSH鍵ファイルの作成

既にできている場合(git bashはllエイリアスがありますが、実コマンドは多分"ls -l"。-alではなさそう。)

$ ll .ssh
-rw-r--r-- 1 user 197121 2610 MM月 DD HH:mm id_rsa
-rw-r--r-- 1 user 197121  574 MM月 DD HH:mm id_rsa.pub

出力がなかった場合はできていないので、以下のコマンドで作成しましょう。

$ ssh-keygen

いくつかコマンドが出ますが、Enterで飛ばして構いません。passphraseも改行2回で飛ばせますが、ある程度適当に入れることを推奨。SSHについて詳しくはまとめてくれている他記事を参照(以下は一例です)。

6.yamlファイルの編集

windows環境なら直接エディタで開いてしまうのが早いと思います。

他記事では大体"folders"が鬼門です。例によってデスクトップに作ることをひとまず前提にします(注記あり)。

homestead.yaml
---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: C:\Users\(user名)\Desktop\hoge #修正部分1
      to: /home/vagrant/code

sites:
    - map: homestead.test
      to: /home/vagrant/code/moefan/public #修正部分2

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false
    - mysql8: true #この行を追加

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

laravel6でだいぶ変わった部分のようで、laravel5の初期状態で入っていたbootstrapやvue/react、Database系といったものの大半が初期状態では入らなくなった模様。dbについては好みがあると思いますが、今回はひとまずmysql8を導入します(が本記事ではこの後使いません)。

Windows環境では以下の問題があるようです。

  1. mapを相対パスで書くとうまく動作しない(公式にも記述あり)
    • →ホームディレクトリの"~"を使用せず"C:\"から始まる絶対パスで記述
  2. mapの中にバイト文字(例:日本語)が含まれていると、後の起動時にコケる
    • →この例で言うと"(user名)"の部分が日本語だとコケるので、日本語が含まれない場所に作成する

自分は2に見事に引っかかりました…

またこのタイミングで、実際にlaravelを入れるフォルダを当該の場所に作成してください。この例では"C:\Users\(user名)\Desktop"に"hoge"を作成します。

7.仮想マシンの起動

先程Homesteadを入れた場所(記事としてはデスクトップ)に移動して、"vagrant up"を打ちます。

(user名)@(PC名) MINGW64 ~
$ cd Desktop/Homestead/
(user名)@(PC名) MINGW64 ~/Desktop/Homestead (master)
$ vagrant up

yamlで設定したIPの被りやBIOS側の仮想化支援機能などの問題がある場合もありますが、その部分のトラブルシュートは本記事では割愛します(先の5.4時代の記事などに対処があります)。

仮想環境にlaravelを入れる

8.仮想マシン上でlaravelをインストールする

(user名)@(PC名) MINGW64 ~/Desktop/Homestead (master)
$ vagrant ssh

問題がなければ、VMの中の仮想マシン(Ubuntu)にログインできるはずです。先程手順6で設定した"code"フォルダがマウントされているはずなので、そのフォルダに移動します。

vagrant@homestead:~$cd code/

本記事で言う"C:\Users\(user名)\Desktop\hoge"と同期しているはずなので、試しに以下のコマンドを打ってみましょう

vagrant@homestead:~/code $ touch hoge.txt
vagrant@homestead:~/code $ ls
(hoge.txtが出力される)

windows上からもフォルダを確認して、"hoge.txt"ができているかを確認しましょう(確認したら消しても構いません)。

同期が確認できたらlaravelのインストールです。

vagrant@homestead:~/code $ composer create-project laravel/laravel --prefer-dist moefan

moefanは任意名です(手順6の「修正部分2」と同じ)。windows上のフォルダにもmoefan(またはフォルダ名)が追加されていることを確認しましょう。

9.laravelページの表示(+α)

ここまでくればlaravelのページが表示できるはずです。

IPアドレスはyamlファイルの一番上の設定に準じますが、hostsを定義して別名でアクセスしてみましょう。

C:\Windows\System32\drivers\etc に"hosts"というファイルがありますので、「管理者権限」で編集します。

192.168.10.10 homestead.test

自環境では特にVMもwindowsも再起動無しで動きましたが、場合により再起動が必要になるかもしれません。

環境構築後

Laravel使い始めとして触ってみるオススメとか。

認証系

公式でほとんど搭載しているauthを有効にしてみるのが良いと思います。ただしwindows環境ではこの手順そのままだとエラーを吐くので、続き記事で書こうかと思います。
→書きました https://qiita.com/honami/items/48b39e12f81d1dbe49c4

公式チュートリアル

laravelのドキュメントでのチュートリアルは5.2までしか対応していないけど、ある程度同じで作れます。Qiitaのリンク先は5.7で5.1のチュートリアルをやったメモですが、ほぼ同様で(レイアウト崩れに目を瞑れば)完成します。これもどこかでまとめたほうがいいのかしら…

さいごに

この手順通りにやってもうまく行かなかった…ということもあるかもしれませんが、答えはだいたいネット上に落ちているので、見つけたらそっと指摘してやってください。

バージョンが上がって使えなくなる可能性もあると思います。その場合は土台が使えそうなら使いまわしつつ、新バージョン対応として記事とか書いておくと次の人が喜ぶと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1