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 の使用を断念することに直接つながる可能性があります。皆さんが諦めないように、私はこのことを書き留めて、この穴を乗り越えられるようにしなければなりません。

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

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

推薦する

検索エンジンのみに最適化し、ユーザーの検索意図を無視する

新しいサイトの最適化計画は、これまでと同じように最適化できますか? 検索エンジンのみに最適化すること...

格安サーバーのおすすめ:WholesaleInternet 39ドルサーバー

WholesaleInternet は、カンザスシティのダウンタウンにあるインターネット サービス会...

クラウドベンダーがダブル11セールに参加

また11月がやってきて、また眠れない夜がやってきました。 「独身の日」にちなんで名付けられたダブル1...

Baidu の製品ラインを SEO に完璧に活用する方法

Baidu には多くの製品ラインがあり、その多くは活用可能です。 Baidu の製品ラインをフル活用...

立ち上げから2か月後の新サイトの最適化体験

新しいウェブサイトを最適化するのは簡単ではないと言われていますが、実際に経験してみなければ、どこに難...

Baidu ライブラリを使用して外部リンクを作成する際のヒントと誤解

インターネット上で図書館の運営に関する経験の共有をよく見かけます。経験の多くは非常に優れていますが、...

SEO必須ガイド:最適化プロジェクトの運用プロセスの紹介

SEO 最適化サービスに携わる人にとって、最適化プロジェクトの運用手順を習得することは基本的な SE...

工場技術者からSEOになるまでの4年間の苦い物語

今日、私は「初心者ウェブマスターのウェブサイト構築経験は SEO 記事よりも価値がある」という記事を...

WeChat:2年で15言語、100カ国以上で3億人のユーザーを獲得

出典:人民日報 著者:張易軒 周飛亜外国製品は入ってこられず、国内製品は出てこられない。中国のインタ...

アリババが自社開発チップをリリース 張勇:優れた技術をオープンに共有し、誰もが恩恵を受けられるようにする

10月19日、2021年雲斉会議が杭州で開幕した。アリババグループの張勇会長兼最高経営責任者(CEO...

トロイの木馬がSEOに与える影響について

ネットワーク セキュリティが SEO に与える影響は、もはや決まり文句になっているようですが、私は個...

教えてください: BandwagonHost cn2 gia vps はどうですか? 買う価値はあるでしょうか?

BandwagonHost cn2 giaはどうですか?この質問に答える前に、まずなぜ cn2 gi...

hostkey-ロシア/著作権フリーサーバー/著作権フリーVPS/オフショアホスト

オランダの会社である hostkey.com は、2007 年に設立されました。主な事業は、サーバー...

PRはウェブマスターにとって根深い問題である

PR は、すべてのウェブマスターにとって消えることのないコンプレックスであると言えます。 PR は、...

Windows Virtual Desktop を使用する理由とタイミング

Microsoft Windows Virtual Desktop を展開する前に、IT プロフェッ...