Wordpress 测试插件与不同的流浪者生活在一起

Wordpress 测试插件与不同的流浪者生活在一起,wordpress,symlink,vvv-wordpress,Wordpress,Symlink,Vvv Wordpress,我目前正试图用它来开发和测试我的插件。我的主机操作系统是Win10 我的插件位于D:\Workshop\projects\vendor\module中。我已经使用这个文件夹结构很长时间了,它真的很方便,特别是对于作曲家和朋友 现在我已经安装了VVV,创建了一个带有的站点。我想测试一个插件,其源代码位于D:\Workshop\projects\XedinUnknown\my project中。因此,我在D:\Workshop\projects\XedinUnknown\vvv local\www\

我目前正试图用它来开发和测试我的插件。我的主机操作系统是Win10

我的插件位于
D:\Workshop\projects\vendor\module
中。我已经使用这个文件夹结构很长时间了,它真的很方便,特别是对于作曲家和朋友

现在我已经安装了VVV,创建了一个带有的站点。我想测试一个插件,其源代码位于
D:\Workshop\projects\XedinUnknown\my project
中。因此,我在
D:\Workshop\projects\XedinUnknown\vvv local\www\my test site\htdocs\wp content\plugins
中创建了一个指向该项目文件夹的符号链接。唉,它不起作用。如果我SSH进入VVV和
ls/srv/www/my test site/htdocs/wp content/plugins
,我可以在那里看到
我的项目
,但它指向
。/../../../../../../../../../XedinUnknown/my project
,当然,它并不存在。如果我创建的不是符号链接,而是一个空文件

我怀疑这与Linux环境如何处理Windows符号链接有关,但我不能完全确定。有可能以某种方式使这项工作成功吗?我真的不想把整个项目文件夹复制到VVV中


这也得到了解决。

因此,我似乎找到了某种解决方案。我添加了一个同步文件夹,它映射到我的项目主页。然后,我从虚拟机内的WP plugins目录创建一个指向该文件夹的符号链接

步骤1-添加共享文件夹 如前所述,应在
自定义文件中执行此操作。此文件应与
Vagrantfile
进入同一目录,例如,它将成为
Vagrantfile
的同级目录。在我的例子中,如果您按照我的问题进行操作,它位于
D:\Workshop\projects\XedinUnknown\vvv local
中。放在这里的任何东西都将成为整个VVV的全局。这也让你能够在不同的网站上使用不同的项目组合。将这些内容添加到您的
自定义文件
,如果不存在则创建该文件

config.vm.synched_文件夹“D:/Workshop/projects”、“/srv/projects”、:owner=>“www-data”、:mount_options=>[“dmode=775”、“fmode=774”]

当然,您应该将
D:/Workshop/projects
替换为存储项目的路径。请注意正斜杠(
/
)。这在Win/Nix上有效。对于仅限Windows的配置,我怀疑您必须将其替换为
\\
,因为这是一个转义序列

步骤2-添加到项目的链接 这应该在站点的
vvinit.sh
文件中完成。在我的例子中,此文件位于
D:\Workshop\projects\XedinUnknown\vvv local\www\my test site\
,因为我想专门为
我的测试站点创建此符号链接。请注意,您的VVV路径可能会有所不同,并且它不必位于projects目录中。它就在你想去的地方。将以下行添加到站点的
vvinit.sh
文件中

if [ ! -f "htdocs/wp-content/plugins/my-project" ]; then
        echo 'Creating symlink to plugin project...'
        cd ./htdocs/wp-content/plugins
        ln -s /srv/projects/XedinUnknown/my-project my-project

        cd -

fi
在上面的代码片段中,将路径更改为所需的项目路径,请记住
/srv/projects/
现在将live映射到主机操作系统中的项目根目录。您还可以将
ln-s/srv/projects/XedinUnknown/my project my project
中第二次出现的
my project
替换为您想要的内容。只要你不改变它以后,你的插件不应该突然被取消激活

另外,据我所知,
vvinit.sh
在资源调配期间运行,而不是每次启动机器时都运行。因此,如果要在其中运行代码,必须从VVV目录运行
vagrant up--provision
。如果不想设置,可以手动运行。使用
vagrant SSH
将SSH转换为VVV,然后
cd/srv/www/my test site
(用您的站点名称替换
my test site
),然后运行
。vvv init.sh

后记 我对Bash脚本非常陌生,我不知道我的解决方案是否是最好的,所以请随意推荐Bash脚本的更好版本。我也不知道Ruby,而且我是Vagrant的新手,所以请随意建议改进
自定义文件
——这本质上与
Vagrant文件
相同


我可以预见这个解决方案的一个可能问题(这本质上是通过文件系统架构的设计)是,如果WordPress决定对插件进行更改,例如,如果您运行WP更新,它将有效地删除项目中的所有文件,包括存储库。因此,在测试站点上,我建议使用类似的方法。我与此插件没有任何关联。

也可以从VVV中的WP插件目录创建一个符号链接(或Windows上的连接)到项目文件夹。这根本不是最好的解决方案,可能会导致一些问题,例如,如果您决定删除VVV,则可能会永久删除项目文件。