それで、私はいくらかの解決策を見つけたようです。プロジェクトのホームにマップする同期フォルダーを追加しました。次に、VM 内の WP プラグイン ディレクトリからそのフォルダーへのシンボリック リンクを作成します。
ステップ 1 - 共有フォルダーを追加する
これは、こちらでCustomfile
説明されているように行う必要があります。このファイルは と同じディレクトリにある必要があります。たとえば、の兄弟になります。私の場合、あなたが私の質問に従っているのであれば、それは. ここに置くものはすべて、VVV 全体でグローバルになります。これにより、さまざまな Web サイトでプロジェクトのさまざまな組み合わせを使用することもできます。これらのコンテンツを に追加し、存在しない場合は作成します。Vagrantfile
Vagrantfile
D:\Workshop\projects\XedinUnknown\vvv-local
Customfile
config.vm.synced_folder "D:/Workshop/projects", "/srv/projects", :owner => "www-data", :mount_options => [ "dmode=775", "fmode=774" ]
もちろん、D:/Workshop/projects
プロジェクトを保存する場所へのパスに置き換える必要があります。スラッシュ ( /
) に注意してください。これは Win/Nix で動作します。\\
Windows のみの構成の場合、これはエスケープ シーケンスであるため、それらを に置き換える必要があると思います。
ステップ 2 - プロジェクトへのリンクを追加
これは、サイトのvvv-init.sh
ファイルで行う必要があります。私の場合、このファイルは にありました。これは、このサイトD:\Workshop\projects\XedinUnknown\vvv-local\www\my-test-site\
専用のシンボリック リンクを作成したいからですmy-test-site
。VVV パスはおそらく異なることに注意してください。また、プロジェクト ディレクトリ内にある必要はありません。VVVのクローンを作成した場所です。以下の行をサイトのvvv-init.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
上記のスニペットで、パスを目的のプロジェクト パスに変更します。ホスト OS のプロジェクト ルートにライブ/srv/projects/
でマップされることに注意してください。inの 2 番目の出現箇所 (最後の単語)を任意のものに置き換えることもできます。後で変更しない限り、プラグインが突然無効になることはありません。my-project
ln -s /srv/projects/XedinUnknown/my-project my-project
また、私が理解したことからvvv-init.sh
、マシンが起動するたびにではなく、プロビジョニング中に実行されます。したがって、そこでコードを実行したい場合はvagrant up --provision
、VVV ディレクトリから実行する必要があります。プロビジョニングしたくない場合は、手動で実行できます。を使用して VVV に SSH で接続しvagrant ssh
、次にcd /srv/www/my-test-site
(サイトの名前に置き換えmy-test-site
ます)、実行します. vvv-init.sh
。
あとがき
私は Bash スクリプトにまったく慣れていないので、私のソリューションが最適かどうかわかりません。そのため、Bash スクリプトのより良いバージョンを提案してください。私は Ruby も知らないし、Vagrant も初めてなので、遠慮なく の改善を提案してください。Customfile
これは本質的に と同じVagrantfile
です。
このソリューションで予想できる問題の 1 つ (これは本質的にファイルシステム アーキテクチャの設計によるものです) は、WordPress がプラグインに変更を加えることを決定した場合、たとえば WP の更新を実行した場合、プラグイン内のすべてのファイルが効果的に削除されることです。リポジトリを含むプロジェクト。したがって、テスト サイトでは、このようなものを使用することをお勧めします。私はこのプラグインとは一切関係ありません。