【问题标题】:Vagrant synced folder link to Apache /var/www/ in Ubuntu VMVagrant 同步文件夹链接到 Ubuntu VM 中的 Apache /var/www/
【发布时间】:2016-07-25 02:00:13
【问题描述】:

我不知道如何表达标题;希望这是有道理的。我正在学习 Vagrant,刚刚发现了同步文件夹。我正在做 Web 开发,想在本地机器上编辑/创建我的文件和文件夹,而不是 Ubuntu 14.04(在 Vagrant 上)。

我将文件存储在我的/vagrant/ 文件夹中,该文件夹最终出现在两台机器上。太棒了。一旦同步文件夹中的文件或文件夹发生更改,我希望这些文件夹/文件自动移动到/var/www/

例如:

  • 在 Windows 10 上在同步文件夹中创建名为 test 的文件夹。将index.html 放入test
  • 文件夹和文件上传到 Ubuntu 机器上。
  • 在 Ubuntu 机器的 /var/www/ 内部,应该有一个 test 文件夹的副本以及其中的所有文件。
  • 如果同步文件夹 /vagrant/ 中发生任何更改,/var/www/ 内的 test 文件夹会更新。

我正在查看ln 命令,但我不断收到一条错误消息,提示“不允许硬链接”。我在 Ubuntu 上是这样尝试的:

cd /vagrant
ln test /var/www/

我应该以不同的方式处理这个问题吗?我怎样才能完成我想做的事情?提前致谢!

【问题讨论】:

标签: windows apache ubuntu vagrant


【解决方案1】:

您可以使用 vagrant 来共享文件夹,在 Vagrant 术语中称为synced folder

如果你想同步客人 /var/www 你可以在你的 Vagrantfile 中添加以下内容

config.vm.synced_folder "www/", "/var/www"

因此,如果您在本地/主机项目文件夹中创建 www/ 文件夹,您将保存在此 www 文件夹下的任何文件都将自动与您的 ubuntu 机器的 /var/www 文件夹同步

vagrant/virtualbox 并没有真正限制同步文件夹的数量,所以你应该采用它而不是使用一个并使用符号链接。

【讨论】:

  • 哦,这比使用符号链接好多了。非常感谢!
【解决方案2】:

同步文件夹的另一种方法是在 linux 中创建软链接。只需在命令行中输入:

rm -rf /var/www

ln -fs /vagrant /var/www

这将删除 /var/www 文件夹并创建一个软链接,以便任何尝试访问 /var/www 的人将被自动重定向到您的同步文件夹,在本例中为 /vagrant 但您可以将其更改为不同的东西。

您还可以为此创建一个 shell 脚本,这样每次创建虚拟实例时,它都可以自动为您执行此操作,而不必每次都手动执行。

这里是一个链接,可以让你在 vagrant up 时让 vagrant 文件运行一个 shell 脚本:

https://www.vagrantup.com/docs/getting-started/provisioning.html

【讨论】:

    猜你喜欢
    • 2018-09-13
    • 1970-01-01
    • 2016-10-15
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多