LoginSignup
0
2

More than 3 years have passed since last update.

Vagrant(仮想化)でLaravel環境の構築について自分なりにまとめてみた(Windows10)

Last updated at Posted at 2021-01-18

はじめに

Laravelでの環境構築の際にLaravelの公式ドキュメント様よりVagrant環境(仮想環境)で構築するよう記述されていたので私自身のアウトプットのために記事にしてみました。

目次

  1. 環境構築
  2. 使ってみてわかったこと
  3. 参考文献


#環境構築
Vagrantとは、ローカル環境内に仮想環境を比較的簡単に構築することだと認識しています。
詳細はIT用語辞典にて確認をお願いします。
では、環境構築についてはじめようかと思います。
まずは手順1~手順3まで入れてください。
手順1:VirtualBoxを入れる。
手順2:Vagrantを入れる。
手順3:Gitを入れる。

下記コマンドは、homesteadに用いる仮想環境の下地を作成する
※git bashを開きそのまま下記を実行してください。

vagrantコマンド
 vagrant box add laravel/homestead

gitコマンドより、Homesteadディレクトリを作成してhomesteadを入れる。

Gitコマンド
 git clone https://github.com/laravel/homestead.git Homestead

cd /Homesteadのディレクトリに入る

.bash
cd /Homestead 

初期設定ファイルを作成(初めての場合は絶対にする)

.bash
./init.sh
#下記コマンドが表示されたらOK
>Homestead initialized!

homesteadに移動してyamlファイルを入れる。

.bash
cd homestead
vi Homestead.yaml

※viは、linux上でテキストを編集するコマンドです。(類似でvimがある)
簡単なコマンド
文字の挿入:「i」
挿入から抜ける:「Esc」ボタン
保存:「:wq!」

yamlファイルの編集

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:\homestead\Laravel\
      to: /home/vagrant/code

sites:
    - map: homestead
      to: /home/vagrant/code/homestead/public

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false

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


上記で設定したパス「C:\homestead\Laravel\」先のディレクトリを作成する。

Homestead.yaml
folders:
    - map: C:\homestead\Laravel\
      to: /home/vagrant/code

公開鍵と秘密鍵を生成する

.bash
cd homestead
mkdir ~/.ssh && cd $_
#鍵作成
ssh-keygen -b 4096
#パスフレーズを入れる・入れないは自由。鍵ファイル名はHomestead.yamlのそれと合わせるようにしてください。
Generating public/private rsa key pair.
Enter file in which to save the key (xxxxx): ~/
Enter passphrase (empty for no passphrase):
#2回パスワード聞かれるので適当にパスワードを入力してください
※忘れないように!!
Enter same passphrase again:

上記より生成されているか確認する
下記は確認コマンドより(id_rsa(秘密鍵),id_rsa.pub(公開鍵))

.bash
cd ~/.ssh

hostsファイルの書き換え(C:\Windows\System32\drivers\etc\hosts)
権限により編集できないのでテキストファイルで開きなおしてください。
hostsの書き換え方

hosts
#下記を追加する一番したに追加する
192.168.10.10 homestead

※補足として仮に複数のアプリと連動させたい場合は、192.168.10.10 プロジェクト名 プロジェクト名1
のように引数みたいに記述すればよい。

#Laravelプロジェクトの作成

まずは、vagrant sshで仮想環境に入ります。
※Homestead.yamlファイルを編集したディレクトリ内で下記コマンドを実行してください。

vagrant ssh

そして、ディレクトリを作成してください。

mkdir code

codeの内部に入っていください。

cd code

Laravelを導入します。

composer create-project laravel/laravel homestead --prefer-dist

#Vagrant実行
vagrantの実行

hosts
#下記を追加する
vagrant up

※vagrant up (vagrantの起動),vagrant up --provision(起動時に起動),vagrant reload(再起動)
vagrant halt(仮想のシャッドダウン)今はこれぐらいのコマンドでよい。

※yamlファイルを編集した後必ずbkを取ってvagratn up --proviesionをして下さい。(yamlの設定がvagrantに反映されないので)

このようなエラーがでた場合は、gitbashの文字コードをUTF-8からshift-jisでできるようになる。
まあ「encode!」っていってのるので修正しましょー。
※Git Bashを右クリックしてoption→text→文字コード(shift-jis)と変更する。

hosts
#下記を追加する
C:/HashiCorp/Vagrant/embedded/gems/2.2.10/gems/childprocess-4.0.0/lib/childprocess/windows/process_builder.rb:44:in `encode!': "\xE8" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to UTF-16LE (Encoding::UndefinedConversionError)
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.10/gems/childprocess-4.0.0/lib/childprocess/windows/process_builder.rb:44:in `to_wide_string'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.10/gems/childprocess-4.0.0/lib/childprocess/windows/process_builder.rb:67:in `create_environment_pointer'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.10/gems/childprocess-4.0.0/lib/childprocess/windows/process_builder.rb:28:in `start'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.10/gems/childprocess-4.0.0/lib/childprocess/windows/process.rb:70:in `launch_process'

これで下記URLでLaravelの画面が表示されたら完了です。
http://homestead/

#その他エラーの原因
先にディレクトリを作成せずにvagrant upしてしまった場合は、下記の対応をしたら言いそうです。

もう一つ嵌りがちなのがvagrant up前にローカルに共有フォルダを作成必要があるみたいです?

  • vagrant up前にローカルに共有フォルダを作成する。作成していなかった場合はvagrant destroyとvagrant upで再構築してみてください。
  • ファイルのパスが間違っている
  • ファイル権限の確認
    下記ywatanabe358様参考


#使ってみてわかったこと
取り敢えず、linuxコマンドに強くなるのかな~と思います。後は、簡単にアプリを配置したり削除できたりする事が可能なので便利だと思います。仮想化の勉強になるのでおすすめです。

ほとんどこの方を参考にしました
有難うございます。

追記:できれば間違っている点やおかしな点があれば教えて頂けると幸いです。


#参考文献

0
2
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
0
2