はじめに
Laravelでの環境構築の際にLaravelの公式ドキュメント様よりVagrant環境(仮想環境)で構築するよう記述されていたので私自身のアウトプットのために記事にしてみました。
目次
#環境構築
Vagrantとは、ローカル環境内に仮想環境を比較的簡単に構築することだと認識しています。
詳細はIT用語辞典にて確認をお願いします。
では、環境構築についてはじめようかと思います。
まずは手順1~手順3まで入れてください。
手順1:VirtualBoxを入れる。
手順2:Vagrantを入れる。
手順3:Gitを入れる。
下記コマンドは、homesteadに用いる仮想環境の下地を作成する
※git bashを開きそのまま下記を実行してください。
vagrant box add laravel/homestead
gitコマンドより、Homesteadディレクトリを作成してhomesteadを入れる。
git clone https://github.com/laravel/homestead.git Homestead
cd /Homesteadのディレクトリに入る
cd /Homestead
初期設定ファイルを作成(初めての場合は絶対にする)
./init.sh
#下記コマンドが表示されたらOK
>Homestead initialized!
homesteadに移動してyamlファイルを入れる。
cd homestead
vi Homestead.yaml
※viは、linux上でテキストを編集するコマンドです。(類似でvimがある)
簡単なコマンド
文字の挿入:「i」
挿入から抜ける:「Esc」ボタン
保存:「:wq!」
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\」先のディレクトリを作成する。
folders:
- map: C:\homestead\Laravel\
to: /home/vagrant/code
公開鍵と秘密鍵を生成する
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(公開鍵))
cd ~/.ssh
hostsファイルの書き換え(C:\Windows\System32\drivers\etc\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の実行
#下記を追加する
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)と変更する。
#下記を追加する
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コマンドに強くなるのかな~と思います。後は、簡単にアプリを配置したり削除できたりする事が可能なので便利だと思います。仮想化の勉強になるのでおすすめです。
ほとんどこの方を参考にしました
有難うございます。
追記:できれば間違っている点やおかしな点があれば教えて頂けると幸いです。