Windows で Vagrant を使用する際の落とし穴

Windows で Vagrant を使用する際の落とし穴

この記事は、私が Windows で Vagrant を半年間使用し、突然 Mac に切り替えた後に書きました。色々な落とし穴に遭遇したので今日この記事を書きました。お役に立てれば幸いです。

発生した問題

以前、Vagrant の使い方に関する一連のチュートリアルを書きました。これらのチュートリアルを書いたとき、私は実際に Windows を使用していました。最近、Mac で使用する際にいくつか問題が発生しました。

今日私が最もお話ししたいのは、権限の問題です。

Windows にはファイル権限の概念がないため、ディレクトリを共有すると、共有ディレクトリにはデフォルトで 777 の権限が設定されます。

しかし、Mac を使用すると、共有ディレクトリの権限とユーザー グループが正しくありません。正常に使用できません。これにより、直接的な問題が生じます。

プロジェクト a は仮想マシンで実行され、ランタイム ディレクトリにログまたは一時ファイルを書き込む必要があります。つまり、読み取り権限と書き込み権限が必要です。

解決

当時はvagrangに直接sshして777権限を与えたのですが書き込みができませんでした。次に、ホスト上で 777 の権限を与えてファイルを書き込むことができましたが、次のファイルは権限を付けて書き込む必要がありました。

その後、Google や Baidu でさまざまな Web サイトを検索したところ、nfs を使用するとこの問題を解決できることがわかりました。しかし、各関係者が提供したソリューションは非常に古く、一部の方法では仮想マシンの起動が妨げられることさえありました。

他に方法はありません。公式 Web サイトにアクセスして、NFS 関連の構成を確認してください。正直に言うと、公式ドキュメントはちょっと単純すぎて抽象的であり、以前のものと組み合わせてしか使用できません。ようやく解決策が見つかりました。参考までに、関連する構成を以下に示します。

  1. config.vm.define :php7 を実行します |p7|
  2. p7.vm.provider "virtualbox"を実行します |v|
  3. v.customize [ "modifyvm" 、 :id、 "--name" "php6" "--memory" "512" ]
  4.  
  5. ## ドメイン名の解決が遅い
  6. v.customize [ "modifyvm" 、 :id、 "--natdnshostresolver1" "on" ]
  7. v.customize [ "modifyvm" 、 :id、 "--natdnsproxy1" "on" ]
  8. 終わり 
  9. p7.vm.box = "CentOs7"  
  10. p7.vm.ホスト名 = "php7"  
  11. p7.vm.network:プライベートネットワーク、IP: 「192.168.33.10」  
  12.  
  13. # ssh 奇妙: 仮想マシンを初めて起動するときに IP を取得できません
  14. p7.ssh.ユーザー名 = "root"  
  15. p7.ssh.password = "vagrant"  
  16. p7.ssh.ホスト = "192.168.33.11"  
  17. p7.ssh.ポート = 22
  18.    
  19. ## nfs ファイルの権限の問題。正常に起動するには数回の試行が必要でした。理由がわからない。
  20. p7.vm.synced_folder "./www"、"/data/wwwroot " タイプ: "nfs" 、:nfs => {
  21. :linux_nfs_options => [ "not_root_squash" ],
  22. :map_uid => 0,
  23. :map_gid => 0
  24. }
  25. 終わり 

この構成は、Vagrantfile で複数のマシンを構成するための構成ドキュメントです。遭遇した奇妙な問題のいくつかはコメントに記載されています。

  • vagrant up php7 を使用した後、設定された IP アドレスが無効になります。この IP アドレスを取得するには、仮想マシンを再起動する必要があります。まだ理由が分からないので、ご存知でしたら教えてください!
  • NFS 構成情報により、権限の問題は完全に解決されます。付与する必要がある権限は、Vagrang 仮想マシンで直接設定されます。ただし、ディレクトリをマウントすると、新しく構成されたマシンが使用可能になるまでに、不可解な理由で数回再起動することがあります。 3回始めました。
  • もう 1 つの落とし穴は、新しいマシンをインストールした後、DNS 解決を構成する必要があることです。そうしないと、一部のリソースをダウンロードできません。
  1. $ vim /etc/resolv.conf
  2.  
  3. ## 次のコンテンツを追加します
  4. ネームサーバー 8.8.8.8

起動時にルートアカウントを使用する設定になっているため、Macを起動するたびにマシンパスワードを入力する必要があり、非常に面倒です。公式ガイドでは/etc/sudoersを次のように設定します

  1. Cmnd_Alias ​​VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
  2. Cmnd_Alias ​​VAGRANT_NFSD = /sbin/nfsdを再起動します
  3. Cmnd_Alias ​​VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
  4. %admin ALL =(root) NOPASSWD: VAGRANT_EXPORTS_ADD、VAGRANT_NFSD、VAGRANT_EXPORTS_REMOVE

この設定はMac専用です

要約する

この種の問題は非常によくあります。 Vagrant を長期間使用してきたユーザーにとっては、簡単に解決できます。しかし、ほとんどの Vagrant 初心者にとって、この問題は非常に厄介であり、Vagrant の使用を断念することに直接つながる可能性があります。皆さんが諦めないように、私はこのことを書き留めて、この穴を乗り越えられるようにしなければなりません。

<<:  「分散キャッシュの詳細」 - 「独自のキャッシュを作成する」

>>:  仮想化は仮想イメージで構成されます。基本的な仮想イメージを作成するにはどうすればよいですか?

推薦する

Pinduoduo は Qutoutiao を買収すべき

Pinduoduoが設立されてから 5 年が経ち、黄正氏は昨日全従業員に宛てた書簡で、同社の CEO...

CN2 を使用した最近の QuadraNet Los Angeles Asia Optimization Network についてお話ししましょう。

CN2ネットワークは、中国電信のプレミアムとして、近年非常に人気がありますが、もちろん価格は常に高価...

チャンネルプロモーション: 高品質で適切なアプリプロモーションチャンネルの選び方

APP の運営とプロモーションにおいて、高品質なチャンネルを選別する方法を学ぶことは間違いなく必要な...

自分自身を正しく位置づけ、取り組むべき正しい方向を選択してください。

物理的なプロジェクトであろうとオンライン上のプロジェクトであろうと、プロジェクトを運営する前に、まず...

Baidu の検索戦略が更新された後、なぜあなたのウェブサイトは常に順位が下がるのでしょうか?

ウェブサイトが降格されたと想像するのは非常に恐ろしいことです。特に、長年培ってきたウェブサイトの場合...

Mituoテンプレートウェブサイト構築の特徴を分析して、ウェブサイト構築のためのブティック「衣料品店」を構築します

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますMituo...

ウェブサイトが検索エンジンにブロックされているかどうかを確認し、対処する方法

多くのウェブマスターにとって、ウェブサイトの降格、掲載数の減少、ランキングの低下などは、悩ましい問題...

5ドルでVPSバトル

ホスティング市場は急速に変化しています。過去数年間人気を博した仮想ホストは、現在では VPS に影を...

クラウドネイティブアーキテクチャはどのように設計すればよいでしょうか?

[[409977]] ACNAのコンセプトアリババは、さまざまな業界の多数の法人顧客にアリババクラウ...

launchvps-$3.2/KVM/1G メモリ/20gSSD/1T トラフィック/ロサンゼルス/quadranet

launchvps は、新しいデータ センターを追加しました。quadranet のロサンゼルスで、...

検索エンジンと一次B2B:恋人か友人か?

恋人同士であるということは、将来の計画があり、一緒に暮らしたいという願望があることを意味します。同性...

Flash ウェブサイト SEO のベスト プラクティス

Flash SEO はよくある問題ではありません。Flash を使用して Web サイト全体を作成す...

Google がウェブサイトをより速くインデックスできるようにする方法

Google によるさまざまなサイトのインデックス作成は同期されていません。サイト A が新しいペー...

キーワード選択における4つの主要要素の分析

ウェブサイトには数百または数千のキーワードが存在することが多く、それらは階層に分かれています。ウェブ...