Điều này có thể do máy chủ web nginx không trỏ đến đúng đường dẫn.
Có hai chìa khóa mà bạn nên xem: map
chìa khóa dưới folders
và to
chìa khóa dưới sites
. Các folders
chính bản đồ thư mục trên máy tính cục bộ của bạn để VM lang thang. Các sites
phím được sử dụng để tạo ra một máy chủ ảo trên nginx với giá trị trong to
.
Những gì bạn muốn đảm bảo là to
bên dưới sites
chỉ ra đúng đường dẫn đến public
.
Vấn đề là tôi đã tạo dự án laravel của mình với composer create laravel/laravel
. Điều này đã tạo ra một thư mục trong thư mục hiện tại của tôi có tên laravel
. Sau đó, không cần thay đổi thư mục, tôi đã cài đặt trình trợ giúp homestead composer require laravel/homestead --dev
.
Sau khi chạy php vendor/bin/homestead make
và vagrant up
cấu trúc thư mục của tôi trông giống như sau:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Homestead.yml của tôi trông như thế này:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Nếu bạn quan sát kỹ, /Users/USER/Sites/sandbox/php/laravel51
đường dẫn sẽ được gắn vào máy ảo ảo. Đây là thư mục sai vì nó phải trỏ đến thư mục gốc của dự án laravel nơi chứa thư mục ứng dụng của bạn. Điều đã xảy ra ở đây là tôi phải yêu cầu người trợ giúp ở nhà trong khi tôi đang ở gốc dự án .
Vì vậy, bây giờ câu hỏi là tôi phải làm gì? Bạn có hai lựa chọn: thoát khỏi máy ảo homestead hiện tại của bạn và bắt đầu lại, nhưng lần này là từ gốc của dự án HOẶC lấy lại những gì bạn đã có.
Nếu bạn muốn lấy lại những gì bạn có, bạn sẽ phải di chuyển một số tệp và một thư mục vào gốc dự án laravel của mình.
Đây là những đồ tạo tác bạn cần di chuyển:
.vagrant
Homestead.yml
Vagrantfile
Điều composer.json
này sẽ không cần thiết vì bạn sẽ yêu cầu nó sau này.
Di chuyển các tệp đó vào thư mục gốc dự án laravel của bạn và thay đổi thư mục làm việc hiện tại của bạn đến đó ( cd laravel
). Tại thời điểm đó, chỉ cần cập nhật bên map
dưới folders
và đảm bảo rằng nó đang trỏ đến gốc dự án. Ngoài ra hãy chắc chắn rằng to
dưới phím sites
là to
chìa khóa dưới folders
với /public
nối vào nó.
Ví dụ:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Bây giờ hãy chạy composer require laravel/homestead --dev
để trình trợ giúp homestead được yêu cầu vào tệp composer.json của dự án hiện tại của bạn và được cài đặt.
Chạy vagrant reload --provision
và bạn sẽ được hoàn tất.
vagrant up --provision
không làm việc cho tôi, nhưnghomestead up --provision
không