Laravel Homestead/Vagrant/Virtualbox работает медленно на Windows
Я установил Laravel Homestead/Vagrant/Virtualbox
на Windows
как сказано на официальном сайте
Но это действительно медленно. Обновление страницы занимает около 5 секунд.
И это не только мое наблюдение. У Ларакаста есть обсуждение этого.
У форума laracast есть несколько интересных идей, но там беспорядок (извините, Джеффри), трудно понять, какие идеи приняты, а какие отклонены.
Здесь, в stackoverflow, у нас есть система голосования для голосования по рабочим решениям и просьба предоставить более подробную информацию для каждого решения в отдельности. Пожалуйста, оставьте свои решения и опыт.
Из моего опыта - однажды была ситуация, когда окна принудительно запускали обновления и выключали мою систему, и когда она запускалась, она была невероятно быстрой (по крайней мере, в 10 раз быстрее), но после следующего перезапуска она снова стала работать медленно. Теперь я знаю, что что-то может быть сделано, чтобы ускорить это, это не " slow hardware case
", это случай программного конфигурирования!
Я использую Windows-10 на Intel-Core-i7, с Oracle Virtualbox-5.2.12... (все самое последнее и обновлять нечего)
Ответы
Ответ 1
NFS означает " Network File System
и вам нужна скорость.
В учебнике Laravel для домашних хозяйств не говорится, что такое NFS
и зачем он вам нужен, поэтому я проигнорировал его при первоначальной установке.
1) На хосте Windows установите плагин, который добавляет поддержку NFS для vagrant в Windows.
$ vagrant plugin install vagrant-winnfsd
2) Перейдите в Homestead.yaml
, он обычно находится в C:\Users\username\Homestead\Homestead.yaml
3) Добавить type: "nfs"
в разделе папок, например, так:
folders:
- map: ~/code
to: /home/vagrant/code
type: "nfs"
4) Беги vagrant up --provision
Результат:
Как и в @phazei's
скорость увеличивается с 8 до 2 секунд для каждого запроса, но это гораздо меньше работы. @phazei's
проясняет некоторые фоновые процессы.
Я тестировал его на Windows 10 с Oracle Virtualbox-5.2.12, версия vagrant-2.1.1.
Обратите внимание: на странице Vagrant NFS написано
Пользователи Windows: папки NFS не работают на хостах Windows. Vagrant проигнорирует ваш запрос на синхронизацию папок NFS в Windows.
Но если у вас есть плагин, вы можете игнорировать его.
Ответ 2
На форуме laracasts, автор @phazei
ответил 3 года назад
То, что он сказал, было:
1) на вашем хосте Windows установите плагин, который добавляет поддержку NFS к vagrant в Windows.
$ vagrant plugin install vagrant-winnfsd
2) найди свою homestead.rb
Я нашел это в
C:\Users\имя пользователя\Homestead\Сценарии
хотя он предложил посмотреть на
C:\Users\имя пользователя\AppData\Roaming\Composer\поставщика\Laravel\приусадебного\Сценарий
3)
Найдите раздел, где он уже просматривает настройки ["папки"], и замените его кодом nfs.
для меня это было где-то около линии 140.
Итак, я закомментировал все утверждения, if settings.include? 'folders'... end
if settings.include? 'folders'... end
и добавил это вместо этого:
# EDIT:
# Reorder folders for winnfsd plugin compatilibty
# see https://github.com/GM-Alex/vagrant-winnfsd/issues/12#issuecomment-78195957
settings["folders"].sort! { |a,b| a["map"].length <=> b["map"].length }
# Register All Of The Configured Shared Folders
if settings.include? 'folders'
settings["folders"].each do |folder|
config.vm.synced_folder folder["map"], folder["to"],
id: folder["map"],
:nfs => true,
:mount_options => ['nolock,vers=3,udp,noatime']
end
end
4) Затем перезапустил vagrant с помощью halt/up, и скорость загрузки моей страницы увеличилась с 8 до 2 секунд.
Спасибо @phazei
. Ваш ответ все еще работает через 3 года.
PS
Я тестировал его на Windows 10 с Oracle Virtualbox-5.2.12, версия vagrant-2.1.1.
PPS
Вы можете запустить vagrant up --provision
, это не повлияет на изменения, внесенные вами в homestead.rb