web-dev-qa-db-ja.com

Laravel WindowsではHomestead / Vagrant / Virtualboxが遅い

公式サイト で述べたように、WindowsLaravel Homestead/Vagrant/Virtualboxをインストールしました

しかし、それは本当に遅いです。ページの更新には約5秒かかります。

そして、それは私の観察だけではありません。 Laracast に議論があります。

Laracastフォーラムには興味深いアイデアがいくつかありますが、そこは混乱しています(Jeffery氏).

Stackoverflowには、有効なソリューションを投票するための優れた投票システムがあり、各ソリューションの詳細を個別に作成するよう著者に要求しています。ソリューションと経験を投稿してください。

私の経験から-Windowsがアップデートを実行してシステムを強制的にシャットダウンし、起動時に信じられないほど高速(少なくとも10倍)でしたが、次の再起動後に再び遅くなりました。今、私はそれをスピードアップするために何かが行われるかもしれないことを知っています、それはソフトウェア構成のケースである「slow hardware case」ではありません!

Oracle Virtualbox-5.2.12を搭載したIntel-Core-i7でWindows-10を使用しています...(すべてが最新で、更新するものがありません)

11

NFSはNetwork File Systemの略で、速度を上げるために必要です。

Laravel Homestead tutorialNFSが何であり、なぜそれが必要なのかを言っていないため、最初のインストールでは無視しました。

1)Windowsホストで、WindowsのvagrantにNFSサポートを追加するプラグインをインストールします。

$ 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 answerのように、要求ごとに速度が8秒から2秒に増加しますが、作業ははるかに少なくなります。 @phazei's answerは、いくつかのバックグラウンドプロセスを明確にします。

Oracle Virtualbox-5.2.12、vagrant version-2.1.1を搭載したWindows 10でテストしました。

注意してください: Vagrant NFSページ 言う

Windowsユーザー:NFSフォルダーはWindowsホストでは機能しません。 Vagrantは、Windows上のNFS同期フォルダーに対する要求を無視します。

ただし、プラグインがある場合は、無視できます。

21

laracasts フォーラムで@phazeiという著者が3年前に回答しました

彼が言ったことは:

1)Windowsホストで、WindowsのvagrantにNFSサポートを追加するプラグインをインストールします。

$ vagrant plugin install vagrant-winnfsd

2)Homestead.rbを見つける

私はそれを見つけました

C:\ Users\username\Homestead\scripts

彼は見ることを提案したにもかかわらず

C:\ Users\username\AppData\Roaming\Composer\vendor\laravel\Homestead\scripts

3)

既にsettings ["folders"]をループしているセクションを見つけ、nfsコードに置き換えます。

私にとっては、140行目くらいでした。

だから、私はすべてのステートメントをコメントアウト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を再起動し、ページの読み込み速度を8秒から2秒に増やしました。

ありがとう@phazei。あなたの答えは3年経ってもまだ有効です。

PS

Oracle Virtualbox-5.2.12、vagrant version-2.1.1を搭載したWindows 10でテストしました。

PPS

vagrant up --provisionを実行できますが、Homestead.rbで行った変更には影響しません

6