こんにちは。さんごーです。
Windows10でLaravel Homesteadをセットアップした時に、共有フォルダの設定でエラーになってしまった時の解決方法を書きます。
vagrant upすると下記エラーが出ました。
==> homestead-7: Mounting SMB shared folders... We couldn't detect an IP address that was routable to this machine from the guest machine! Please verify networking is properly setup in the guest machine and that it is able to access this host. As another option, you can manually specify an IP for the machine to mount from using the `smb_host` option to the synced folder.
↓翻訳
ゲストマシンからこのマシンにルーティング可能なIPアドレスを検出できませんでした。 ネットワークがゲストマシンで適切に設定されており、このホストにアクセスできることを確認してください。 別のオプションとして、マシンのIPを手動で指定することもできます `smb_host`オプションを使って同期フォルダにマウントします。
共有フォルダがうまくいってない。
では解決方法です。
動作環境
動作環境は以下です。
- ホストOS:Windows10 Pro
- 仮想化システム:Hyper-V
vagrant destroy
いったん環境を作り直すので、vagrant destroyで仮想環境を削除しておきます。
> vagrant destroy
仮想スイッチのIPアドレスを確認する
ipconfigで「vEthernet (既定のスイッチ)」のIPアドレスを確認しておきます。
コマンドプロンプトでipconfigを実行。
> ipconfig (略) イーサネット アダプター vEthernet (既定のスイッチ): 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::3121:9f04:1be2:420c%8 IPv4 アドレス . . . . . . . . . . . .: 172.19.34.1 サブネット マスク . . . . . . . . . .: 255.255.255.240 デフォルト ゲートウェイ . . . . . . .:
ここで確認したIPv4アドレス「172.19.34.1」の部分をHomestead.yamlで設定します。
IPアドレスの値は環境によって違います。
Homestead.yamlの設定
Homestead.yamlは以下のように設定しています。
- providerを「hyperv」に変更。
- foldersに「smb_host: "172.19.34.1"」を追加。(IPアドレスはipconfigで確認したものを指定)
- foldersのmapとto、sitesの内容はお好みで。
--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: hyperv authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: "C:/hoge/fuga" to: /home/vagrant/code smb_host: "172.19.34.1" sites: - map: homestead.test to: /home/vagrant/code/public (以下略)
vagrant up時の指定
vagrant upした時に、上で設定したIPアドレスに対応する「既定のスイッチ」を選びます。
homestead-7: Please choose a switch to attach to your Hyper-V instance. homestead-7: If none of these are appropriate, please open the Hyper-V manager homestead-7: to create a new virtual switch. homestead-7: homestead-7: 1) 新しい仮想スイッチ homestead-7: 2) DockerNAT homestead-7: 3) 既定のスイッチ homestead-7: homestead-7: What switch would you like to use? 3
ここでは「3」を入力します。
これで「We couldn't detect an IP address…」のエラーが出なければ成功です。
うまくいかない時
以下を試すと解決する場合があります。(理屈はよく分かりません…)
- 「vagrant destroy」で仮想マシンを削除する
- PCを再起動する
- 再度「vagrant up」する
書籍紹介
Vagrantを使うなら、基本的な機能は知っておくと幸せになれます。
- 作者: Mitchell Hashimoto,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/02/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
Laravelを学ぶときはサンプルコードを読むのが効率的。本だと説明が多いのでオススメです。
- 作者: 白岩登
- 出版社/メーカー: 株式会社フェンドーラ
- 発売日: 2017/12/21
- メディア: Kindle版
- この商品を含むブログを見る