どうやら、途中からHomesteadの仕様も変わったようで、プロジェクトのディレクトリ以下にHomestead.yamlが作られるように変更されているようです。
なので、プロジェクトの下に.homesteadディレクトリがない場合はプロジェクトのルートディレクトリにHomestead.yamlが存在します。
前回は実際に検証して答えたわけではなかったので、仕様が変更されていることを認知できていませんでした。
そして回答ですがmapするのはプロジェクトルートになるのでHomesteadディレクトリがあったとしても、そこまで指定する必要はありません。
C:/Homestead/Laravel5.1/Homestead→C:/Homestead/Laravel5.1
で問題ないです
もっと詳しく
C:/Homestead/Laravel5.1の中身はこうなっていると思います。
app/
bootstrap/
config/
database/
public/
resources/
storage/
tests/
vendor/
.vagrant/ ←このディレクトリが存在することを確認してください
.env
Homestead.yaml ←このファイルが存在することを確認してください
Vagrantfile ←このファイルが存在することを確認してください
他ファイル幾つか
間違えてこのディレクトリ内でgit clone https://github.com/laravel/homestead.git Homestead
していたら削除してください。
もしもHomestead.yamlやVagrantfileが存在しない場合はcomposer require laravel/homestead --dev
とvendor\\bin\\homestead make
を実行してください。
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: 'C:/Homestead/laravel5.1'
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/public
databases:
- homestead
name: laravel5.1
hostname: laravel5.1
folders
folders:
- map: 'C:/Homestead/laravel5.1'
to: /home/vagrant/Code
のmapは自分の方のディレクトリパスを指定します。これはプロジェクトディレクトリを指定するのが普通です。
そしてtoは仮想環境のサーバーのパスです。
つまりこれはC:/Homestead/laravel5.1が仮想環境の/home/vagrant/Codeと共有状態になります。
(なので、先程のC:/Homestead/laravel5.1/Homesteadという指定はプロジェクトのディレクトリの奥のディレクトリと共有することになります。仮想環境からはこうなってるとプロジェクトのディレクトリが確認できないのでマウントできたとしてもファイルが存在しないなどのエラーが起こります。)
vagrant up
をした時に以下のような文が最後の方に出てきますが、その部分をみることで共有されたかどうかが分かります。
==> laravel5.1: Mounting shared folders...
laravel5.1: /vagrant => C:/Homestead/laravel5.1
laravel5.1: /home/vagrant/Code/Laravel => C:/Homestead/laravel5.1
sites
sites:
- map: homestead.app
to: /home/vagrant/Code/public
これはサイトのドキュメントルートとhost名を指定することで外からhost名でアクセス出来るようにできます。
toは仮想環境のドキュメントルートを指定します。foldersの設定で/home/vagrant/CodeがC:/Homestead/laravel5.1と共有状態になっているので、C:/Homestead/laravel5.1/publicがドキュメントルートになります。
ドキュメントルートはこのhomestead.appというホストにアクセスした時にサーバーがファイルを確認しにいくフォルダのパスのことです。
laravelのドキュメントルートはプロジェクトのディレクトリの中にあるpublicディレクトリなので、このような指定になります。(実際に最初にアクセスしにいくファイルはpublic/index.phpです。)
ちなみに、このsitesの設定を変更した場合は再度プロビジョニングが必要です。(vagrant provision
コマンド)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/16 04:04
退会済みユーザー
2017/09/16 04:17