質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

3回答

3948閲覧

Vagrant Synced folderについて

RieMatsui

総合スコア27

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

1クリップ

投稿2016/09/13 16:21

編集2016/09/14 16:38

###Vagrant Synced folder で 同期したい
VagrantにsentOSをインストールしていますが、Vagrant sshした時にターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する方法を知りたいです。
そのための機能としてVagrant Synced folder の設定があると考えて設定をしていますが、認識としてあっていますでしょうか?プログラミングは初心者でわからないことばかりでご教授願います。

###発生している問題・エラーメッセージ
ターミナル上で
$vagrant rsync_auto
上記を実行

There are no paths to watch! This is either because you have no
synced folders using rsync, or any rsync synced folders you have
have specified rsync_auto to be false.
とエラーメッセージが出ています。

###参考にしたページ

https://www.vagrantup.com/docs/synced-folders/rsync.html

###試したこと
vi vagatrantfileを実行
config.vm.synced_folder "../data", "/vagrant_data"
を編集し

config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: ".git

こちらを入力し編集。

packさんの助言で
vagrant up実施

Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant The error output from the last command was: /sbin/mount.vboxsf: mounting failed with the error: No such device

と出てきたので

vagrant plugin install vagrant-vaguest

を実施しました。

###補足情報(言語/FW/ツール等のバージョンなど)
MacOS 10.11.6
Vagrant Installed Version: 1.8.4
Virtual Box バージョン 5.0.26 r108824
Cyberduck バージョン 5.1.0 (20872)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pack

2016/09/14 01:38

「vagrant up」の結果のログを、張り付けてください。
RieMatsui

2016/09/14 17:06

>packさん vagrant upやはりエラーが発生していました。 内容を添付しています。ご指示ありがとうございます。
guest

回答3

0

ベストアンサー

###エラーの確認

まずは、「vagrant rsync-auto」の前に「vagrant up」の処理がすべて正常に完了したかどうかが問題です。
途中でコケてる可能性が高い気もしますが。

https://teratail.com/questions/45790

こちらと同じ状況の可能性もあります。
上記質問でも、回答いたしましたが、同期が完了したログメッセージは出力されましたでしょうか?

==> default: Configuring and enabling network interfaces... ==> default: Rsyncing folder: /path/of/host/machine => /vagrant

###テキストエディタでの編集

続いて、rsyncが正常に出来たと仮定してですが、以下は私の環境での事なので、もしかしたらそちらの環境とは違う可能性もあります。

ご質問の、「ターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する方法」ですが、rsyncは基本的に一方向の同期です。Dropboxのような双方向ではありません。

Host(Mac) => Guest(CentOS)

Mac上で編集されたファイルを監視し、CentOSへ自動でアップロードしてくれるのが、vagrant rsync_autoです。

「ターミナル上でインストールされたファイル」が、CentOS上の同期フォルダのみにあるファイルという意味であれば、最初にMac上の同期フォルダにダウンロードする必要があります。
SCP、SFTPなどを利用する事になると思います。

他の方も指摘されている「type: "rsync"」を使うかどうかですが、現在はVagrantが標準で備えている同期機能をあえて使わず、rsyncを使うという指定です。
私の環境で確認したところ、rsyncは一方向。
Vagrant標準の同期機能は、双方向(マウント)となっており、autoコマンドなどを打つ必要もなく、自動で反映もしてくれます。

双方向であれば、ダウンロードする手間がかかりません。
ただし、余計なファイルまで、ローカルに落ちてきてしまう可能性はあります。

###Synced folderとソースの設置

「そのための機能としてVagrant Synced folder の設定がある」というのは、その通りだと思います。
もし、開発でソースをアップしたいという事であれば、別にVagrantの同期機能にこだわる必要はなく、IDEのデプロイ機能や、使い慣れたSFTPクライアントなど、何でもいいと思います。

Ansibleなど構成管理ツールを利用して、ローカルからソースをアップする場合に、Synced folderが役に立ちます。(でも結局、Ansibleのファイル転送を使うかな)

まっさらの状態のBox ⇒ いろいろインストール ⇒ 開発したソースの設置

まで一発で出来ます。開発したソースをどこに置いておくかにもよりますが。
GitHubなどから引っ張ってくるとなると、それはまた別の話ということで。

ごそっと環境を作り直したい状況は、おのずと出てきますので、ある程度慣れてきたらツールで自動化できるようにしておけるといいと思います。

投稿2016/09/14 09:16

編集2016/09/14 20:19
pack

総合スコア256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RieMatsui

2016/09/14 17:03

rsyncでの同期はうまくいかないですが、Cyberduck(SFTPクライアント?)でhost側のファイルを転送するように192.168.33.10で接続し、/home/vagrantで設定してローカルにファイルを転送できるように設定できました。
pack

2016/09/14 20:17

少し回答に補足いたしました。 私ももっぱら開発で使うのは、IDEのSFTP機能です。 vagrant up時の不可解なエラーで悩まされ続けるようであれば、使うBoxを変えてみるというのも、一つの手です。 すでに利用されてるかも判りませんが、HashiCorpの https://atlas.hashicorp.com/bento から入手したものに変えてみたら、上手く行ったというのも、私はUbuntuですがありました。 お箸とお弁当なので、相性がいいのは当然、みたいなとこです。 構成管理を使っていれば、そういった思い切った事も気軽にできるので、それもまたおいおいで。
RieMatsui

2016/09/15 02:06

>packさん ありがとうございます。Ubuntuでvagrant構成を作ってる書籍も最近はよく出ていますね。また環境再構築の際はご相談させて頂きます。いつもご丁寧にありがとうございます。
pack

2016/09/15 03:23

そうですね。 同じCentOSの同じバージョンであっても、違うみたいなので。 また機会があれば、せひ。
guest

0

Vagrantの共有フォルダはvagrant sshした際の/vagrantとローカルのVagrantfileの置いてある階層がリンクしています。

なので、vagrantfileと同じ階層にファイルを置けばvagrant内にもリンクされるので、ローカルのテキストエディタで編集出来るようになります。

config.vm.synced_folderの設定を記述していれば普通は出来るかと思うのですが、それで出来ないのであれば、シンボリックリンクを使って試してみてください。やり方は以下です。

//vagrantfileのある階層で起動 vagrant up vagrant ssh // 以下でシンボリックリンクを設定 sudo ln -s /vagrant /var/www/html

以上で出来るようになると思います。

投稿2016/09/14 00:34

kenny_sayama

総合スコア1036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RieMatsui

2016/09/14 16:57

>kenny_sayamaさん ありがとうございます。sudo ln -s /vagrant /var/www/htmlも試してみたのですが、 うまく同期できなかってです。
guest

0

フォルダのマウントに失敗していると、記載されたようなメッセージになることがあるようです。
vboxのリビルドを試されてはいかがでしょうか?
参考:http://qiita.com/takahirono7/items/ed1fa1989ec98a01b0e9

蛇足かもしれませんが、「Vagrant sshした時にターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する」という要件だけであれば、rsyncの利用は必須ではありません。利用した方が、パフォーマンスは良いということですが。
もし、rsyncを利用せずに同期だけする場合は「, type: "rsync", rsync__exclude: ".git」部分を削除してvagrant reloadしてください。

投稿2016/09/14 00:22

tomoeine

総合スコア127

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RieMatsui

2016/09/14 16:53

>GoldenLatteさん ありがとうございます。確かに、したい要望を考えたらそんなにrsyncを使っての同期は必要のないことかもしれないです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問