回答編集履歴

5

Add expression

2020/08/25 14:26

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -94,9 +94,29 @@
94
94
 
95
95
  Windows 側で次のようにマウント・アンマウントします
96
96
 
97
+
98
+
99
+ マウント:
100
+
101
+
102
+
103
+ ```console
104
+
97
- [vagrant-symfony3/mount_workspace.bat at master · yukihiko-shinoda/vagrant-symfony3](https://github.com/yukihiko-shinoda/vagrant-symfony3/blob/master/mount_workspace.bat)
105
+ net use Z: \172.28.128.3\workspace /user:vagrant vagrant
106
+
98
-
107
+ ```
108
+
109
+
110
+
111
+ アンマウント:
112
+
113
+
114
+
115
+ ```console
116
+
99
- [vagrant-symfony3/unmount_workspace.bat at master · yukihiko-shinoda/vagrant-symfony3](https://github.com/yukihiko-shinoda/vagrant-symfony3/blob/master/unmount_workspace.bat)
117
+ net use Z: /delete
118
+
119
+ ```
100
120
 
101
121
 
102
122
 

4

Add second answer

2020/08/25 14:26

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
File without changes

3

Add second answer

2020/08/25 14:23

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -1,3 +1,115 @@
1
+ ## 追記
2
+
3
+
4
+
5
+ `synced_folder` でマウントしたディレクトリーは
6
+
7
+ Windows のディスクなのでシンボリックリンクを作成することができない他、
8
+
9
+ 権限も規定では `777` となります
10
+
11
+ 特にシンボリックリンクは PHP で使われることが多いので
12
+
13
+ Composer のインストールが失敗する原因になりやすいです
14
+
15
+
16
+
17
+ 自分の場合は、次のどちらかの対応を行っていました
18
+
19
+
20
+
21
+ ## 選択 A: ファイルを絞って Windows からマウント
22
+
23
+
24
+
25
+ シンボリックリンクなどが含まれたディレクトリーは
26
+
27
+ Windows のディスク上で扱うことができませんので、
28
+
29
+ それ以外のファイルだけを Windows 上で管理するようにします
30
+
31
+
32
+
33
+ PHP のプロジェクトによっては
34
+
35
+ vendor ディレクトリーさえ Linux のディスクにしておけば
36
+
37
+ 動作するものもあるので、その場合はこの方法を使います
38
+
39
+
40
+
41
+ ただし、Linux のディスクにあるファイルを取り出すときは
42
+
43
+ Windows 側の空のフォルダーを Linux 側のファイルのパスにマウントしても取り出せません
44
+
45
+ マウントは既存のファイル・ディレクトリーを隠し、
46
+
47
+ マウントしたファイル・ディレクトリーを表示します
48
+
49
+ [Answer: Vagrant shared folders wipes all the contents in my folders](https://stackoverflow.com/a/25487042/12721873?stw=2)
50
+
51
+ [Answer: What does Linux do with existing files in a mount point?](https://superuser.com/a/200697/1167741?stw=2)
52
+
53
+ [mount(8): mount filesystem - Linux man page](https://linux.die.net/man/8/mount)
54
+
55
+
56
+
57
+ Linux 上のファイルを取り出すときは次のコマンドが役立ちます:
58
+
59
+
60
+
61
+ ```console
62
+
63
+ cp -ipr /path/to/source /path/to/destination
64
+
65
+ ```
66
+
67
+
68
+
69
+ ## 選択 B: 仮想マシンのボリュームを Windows にマウント
70
+
71
+
72
+
73
+ どうしてもシンボリックリンク等のファイルを扱う必要がある場合は
74
+
75
+ Vagrant の `synced_folder` の利用を諦め、
76
+
77
+ `Samba` を使って Linux 側のディスクを Windows にマウントします
78
+
79
+
80
+
81
+ [Sambaの基本を知っておこう:基礎から理解するLinuxサーバー[Cent OS 7.0編](7) - @IT](https://www.atmarkit.co.jp/ait/articles/1612/01/news183.html)
82
+
83
+
84
+
85
+ インストール手順は、次の Ansible コードが参考になります
86
+
87
+ (Ansible が実行できなくても、読めばインストール手順としては参考になると思います)
88
+
89
+ [ansible-role-samba-amazon-linux/main.yml at master · yukihiko-shinoda/ansible-role-samba-amazon-linux](https://github.com/yukihiko-shinoda/ansible-role-samba-amazon-linux/blob/master/tasks/main.yml)
90
+
91
+
92
+
93
+ 正しくインストールすれば、Samba のサービスが Linux 側で起動するので
94
+
95
+ Windows 側で次のようにマウント・アンマウントします
96
+
97
+ [vagrant-symfony3/mount_workspace.bat at master · yukihiko-shinoda/vagrant-symfony3](https://github.com/yukihiko-shinoda/vagrant-symfony3/blob/master/mount_workspace.bat)
98
+
99
+ [vagrant-symfony3/unmount_workspace.bat at master · yukihiko-shinoda/vagrant-symfony3](https://github.com/yukihiko-shinoda/vagrant-symfony3/blob/master/unmount_workspace.bat)
100
+
101
+
102
+
103
+ ## WSL は未検証です
104
+
105
+
106
+
107
+ 上記の知識は WSL 以前のものなので、
108
+
109
+ もしかすると WSL を使えば別の解決方法があるかもしれません
110
+
111
+
112
+
1
113
  ## 元の回答
2
114
 
3
115
 
@@ -48,10 +160,6 @@
48
160
 
49
161
 
50
162
 
51
- ## 追記
52
-
53
-
54
-
55
163
  仮想マシンに `GuestAdditions` はインストールしましたか?
56
164
 
57
165
  `GuestAdditions` がインストールされていないと

2

Add second expression

2020/08/25 14:23

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -75,3 +75,31 @@
75
75
  vagrant plugin install vagrant-vbguest
76
76
 
77
77
  ```
78
+
79
+
80
+
81
+ また、`vagrant up` や `vagrant reload` した際に、次のログは表示されましたか?
82
+
83
+
84
+
85
+ ```console
86
+
87
+ ==> default: Checking for guest additions in VM...
88
+
89
+ ==> default: Mounting shared folders...
90
+
91
+ default: /vagrant => C:/Users/Public/workspace/test-vagrant-287111
92
+
93
+ default: /var/www/html => C:/Users/Public/workspace/data
94
+
95
+ ```
96
+
97
+
98
+
99
+ このログはフォルダーが正常にマウントされたことを示しています
100
+
101
+ もし、このログが表示されていない場合は、
102
+
103
+ 仮想マシンが起動した際になんらかのエラーが発生しているものと思われます
104
+
105
+ その場合は、起動した際のメッセージを確認すると、原因を調べることができます

1

Add expression

2020/08/24 16:12

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -1,3 +1,7 @@
1
+ ## 元の回答
2
+
3
+
4
+
1
5
  ```Vagrantfile
2
6
 
3
7
  config.vm.synced_folder "../data", "/var/www/html"
@@ -41,3 +45,33 @@
41
45
 
42
46
 
43
47
  [vagrant up - Command-Line Interface | Vagrant by HashiCorp](https://www.vagrantup.com/docs/cli/up)
48
+
49
+
50
+
51
+ ## 追記
52
+
53
+
54
+
55
+ 仮想マシンに `GuestAdditions` はインストールしましたか?
56
+
57
+ `GuestAdditions` がインストールされていないと
58
+
59
+ ファイル共有は行なえません
60
+
61
+
62
+
63
+ `vagrant-vbguest` をインストールしておくと、
64
+
65
+ 自動的に `GuestAdditions` をインストールしてくれるので便利かもしれません
66
+
67
+
68
+
69
+ [dotless-de/vagrant-vbguest: A Vagrant plugin to keep your VirtualBox Guest Additions up to date](https://github.com/dotless-de/vagrant-vbguest)
70
+
71
+
72
+
73
+ ```console
74
+
75
+ vagrant plugin install vagrant-vbguest
76
+
77
+ ```