1

次のvagrant共有設定があります:

config.vm.synced_folder "~/web", "/opt/subversion/web"

私のページの1つで、zipファイルを開き、それらをディレクトリに抽出します。

/opt/subversion/web/extracts/

VM 内からディレクトリを見ると、次のようになります。

drwxrwxrwx 1 vagrant vagrant 136 Jul 23 13:31 extracts

ホスト上のディレクトリを見ると、次のようになります。

drwxrwxrwx  4 garth  staff  136 Jul 23 15:31 extracts

Web ページは、zip ファイルの内容を「extracts」ディレクトリ (VM ビュー) に格納するためのディレクトリを作成します。

drwxr-xr-x 1 vagrant vagrant 68 Jul 23 13:31 ZipExtractDir

そこから、apache/web ページからそのディレクトリ内にファイルを書き込もうとすると、許可が拒否されます。

以前は Vagrant V1 のインストールでこの問題が発生したことはありませんでしたが、sync_folder オプションの :nfs=>true 属性を使用して共有を行っていました。現在、「config.vm.network :public_network」を使用して、パペット経由で管理される vagrant の「グローバル」開発インストールを使用しています。

nfs をセットアップする必要がありますか、それともここで何か問題があり、apache が「apache」ではなく「vagrant」としてディレクトリを作成する理由があります。「apache」ではなく「vagrant」という所有者で作成されているため、ディレクトリに書き込むことができず、apache がディレクトリに書き込もうとすると、アクセス許可拒否エラーが発生すると想定しています。DHCP を使用して vagrant で nfs をセットアップすることはできますか、それとも静的 IP が必要ですか?

参考までに、apache は apache ユーザーを使用するようにセットアップされています。/etc/selinux/config も確認しましたが、 SELINUX=disabled に設定されています

4

1 に答える 1

4

同期フォルダーのアクセス許可を設定することでこれを回避する方法を見つけることができたので、vagrant 内で user.group が間違っていても、apache ユーザーがディレクトリに書き込むことができる限り、それは世界の終わりではありません。

config.vm.synced_folder "~/web", "/opt/subversion/web", :extra => 'dmode=777,fmode=777'

編集:

Vagrant 1.3.0 以降では、:extra の代わりに :mount_options を使用します。

config.vm.synced_folder "~/web", "/opt/subversion/web", :mount_options => ['dmode=777,fmode=777']
于 2013-07-25T09:07:00.937 に答える