Railsを今までずっとやっていましたが、Laravelも学び始めた時にまず環境構築からだよなぁと思い、Qiita内の記事を参考にしながらComposerオンリーで作ってみたり、Homesteadを使ってみたりとしておりましたが、Homesteadで一日沼にハマってしまったので、こちらに備忘録的に書いておきたいと思います。
皆様の参考になれば幸いです。
とっても参照してお世話になった記事は 「こちら」からどうぞ!
#バージョン情報
PC:Windows10 home 1903
Vagrant 2.2.7
Virtual Box 6.1.2
Composer 1.9.3
Laravel 6.15.1
#Vagrant & Virtual Box
上記各々検索して出てきた公式サイトにてダウンロード可能です。
#Homesatead
こちらでざっと環境開発に必要なプロセスを載せていきます。
1.ホームディレクトリにて
vagrant box add laravel/homestead
と入力してHomestead専用のVagrant Boxをインストールします。専用のVagrantfileも生成されます。
virtual Boxの番号を聞かれたら3でいいと思います。※この処理に時間がかかります。
2.ユーザーフォルダ直下やCフォルダ直下、デスクトップなどで任意の作業用フォルダを作ります。
3.作業用フォルダ内で
git clone https://github.com/laravel/homestead.git Homestead
と入力しHomesteadを召喚します。
4.Homeasteadフォルダもできるので、移動して
bash init.sh
と入力してHomeasteadの初期化を行います(これをやらないと不具合がでるらしい)Homeastead initialized等の文言が出てきたらOK
5.もしSSH鍵を生成していなかったら、
ssh-keygen
で作っておきましょう。エクスプローラーのユーザ/.ssh内にid_rsaとid_rsa.pubがあればできています。コマンドで
ls -la .ssh
とかでも見ることができます。
6.Homeasteadディレクトリに移動して、
vim homestead.yaml
で下記の用な感じに編集します。
--
ip: "192.168.10.10" #任意のIPアドレス
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/app #任意の作業用フォルダ
to: /home/vagrant/Code
sites:
- map: homestead.test #任意のホスト名
to: /home/vagrant/Code/Laravel/public #Laravelは作成するプロジェクト名、何でも良い
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
7.vagrantを
vagrant up --provision #provision入れると不具合が起きにくいかと
で起動しましょう。
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.
と出てきた場合は、Windows/System32/drivers/etc/hostsを管理者権限のあるエディタで開き、
ipと任意のホスト名を入力してあげましょう。
8.以上が完了したら、
vagrant ssh
を入力することでSSH接続が完了します。vagrant@homesteadというディレクトリ名に変わってると思います。
cd code
composer create-project laravel/laravel --prefer-dist ディレクトリ名 #この処理に時間がかかります
とすることで編集するプロジェクトが立ち上がり、編集が可能になります。
ちゃんとサーバーに接続できてるか確認するために、ipアドレスをブラウザに入力してみましょう。
あれ????できない????
#Vagrant SSHができなかった・・・
何回やってもSSH接続ができない!そこで周りの猛者にきいてみたところ、
.ssh/configってなんやこれ?邪魔っぽくね?
というふうに見解をもらったので、すでに生成されているSSH鍵と一緒に右クリック!!!!
新しく鍵を作り直すと、
vagrant ssh
でやっと起動できました~!
#まとめ
Homesteadを利用した環境構築において、
SSHまでやろうとしてもうまく行かない場合は、考えられる原因は
・Windows/System32/drivers/etc/hosts
・Homestead.yaml
・SSH鍵とその仲間.ssh/configファイル
です。ここに入力漏れがないかをみてみましょう。
ありがとうございました。