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

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

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

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

6225閲覧

HomesteadでLaravelのプロジェクトをローカル開発環境に2つ作りたいが'homestead-7'は既に存在しているというエラーが出る

YorihiroKatsuki

総合スコア70

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/07/30 18:32

###前提・実現したいこと
Laravelのプロジェクトをローカル開発環境に作りたいのですが、
以前作ったプロジェクトとは別で新しいプロジェクトを作成したいと考えています。
また、前回作ったプロジェクトは現在も開発中なので削除せずに残したいです。

以前一つ作成済みなので、以下は完了しています。
・vagrantのインストール
・VirtualBox のインストール
・Homestead vagrant box のダウンロード
その上でこちらの記事を参考にHomesteadのダウンロードや設定を進め、vagrant upコマンドを実行しました。

なお、Homesteadをダウンロードしようとしているディレクトリはこちらです。
<前回Homesteadをダウンロードしたディレクトリ>

~/LaravelApp

<今回Homesteadをダウンロードしたディレクトリ>

~/LaraForum

###発生している問題・エラーメッセージ

上記のディレクトリにHomesteadをダンウロードして、~/LaraForum/Homesteadにてvagrant upを実行したところ以下のエラーが発生しました。

A VirtualBox machine with the name 'homestead-7' already exists. Please use another name or delete the machine with the existing name, and try again.

###試したこと
<試したこと①>
homestead-7という名前の仮想マシンは前回プロジェクト作成時に作られているため、名前を変えなさい、と言われていると思うのでVirtualBoxを立ち上げて名前を変更しようとしましたが、vagrant upに失敗したせいか、Virtualboxの方には前回作成したhomestead-7しか表示されませんでした。

<試したこと②>
Vagrantfile上で仮想マシンの名前を指定しようと思い、以下のコードを追加しましたが同じエラーが発生しました。

//仮想マシン名を"laraForum"に変更 config.vm.box = "laraForum"

<試したこと③>
Homestead/scripts/homestead.rbにて以下のように名前を変更しましたが別のエラーが発生してしまいました。

■変更箇所

# Configure The Box config.vm.define settings["name"] ||= "laraForum" # Configure A Few VirtualBox Settings vb.name = settings["name"] ||= "laraForum" # Configure A Few VMware Settings v.vmx["displayName"] = settings["name"] ||= "laraForum" # Configure A Few Parallels Settings v.name = settings["name"] ||= "laraForum"

■発生したエラー

You specified a box version constraint with a direct box file path. Box version constraints only work with boxes from Vagrant Cloud or a custom box host. Please remove the version constraint and try again.

現在もこちらのエラーを元に検討しているところですが、是非詳しい方にお知恵を頂きたく質問させて頂きました。
ご協力の程宜しくお願い致します。

###補足情報(言語/FW/ツール等のバージョンなど)
・Laravel5.4

他に必要な情報がございましたらコメント頂けますと幸いです。

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

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

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

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

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

guest

回答2

0

すでに回答が出てる一つのhomesteadで複数サイトを動かす方法と
プロジェクトごとにhomesteadをインストールする方法があります。
https://readouble.com/laravel/5.4/ja/homestead.html#per-project-installation
自分がよく使うのはこっち。プロジェクトが増えると結局は分けたほうが分かりやすい。複数人で開発する場合はプロジェクトごとのほうがいい。

投稿2017/07/31 00:17

kawax

総合スコア10377

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

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

YorihiroKatsuki

2017/08/09 13:08

返信が遅くなり申し訳ございません>< ご提案いただいた方法で実施しようとしたのですがうまく行かず、別のやり方で解決致しました。 別の機会がありましたらご提案いただいた方法も実施させて頂きたいと思います! ありがとうございました!
guest

0

ベストアンサー

結論から申しますと、複数のLaravelプロジェクトを動作させる場合でも、Homesteadは1つだけあれば十分です。
(例えばPHPのバージョンを異なる環境にしたい、という場合であれば話は別ですが)
Homesteadを最初に導入した時に、Homestead.yamlというファイルを編集したと思いますが、
そこに設定を追記する形になります。

設定のfolderssitesに、それぞれ新しく作るプロジェクト用のmaptoのペアを
もともと1つ目で運用していた内容はそのままに、新たに追加してください。
(ディレクトリ構成によっては、foldersの方は1つ目のアプリと結果的に同じになり、追加しなくてもよいケースがあります。)

次に、sitesのmapに追加した名前と同名のドメインを、hostsファイルにも追加します。
例えばhomestead.appとは別にforum.appという名称で追加した場合、hostsに

192.168.10.10 homestead.app 192.168.10.10 forum.app

のような感じで、2つの設定が同居する形になります。(IPは同じになります)

また、利用するデータベースも1つ目のアプリとは異なる名称のものを作る必要があるので、
databasesの項目も追加してください。

# Homestead.yaml内 databases: - homestead - forum

その後、新プロジェクトの.envにあるDB_DATABASEの値を、上で作ったdatabase名に合わせます。

最後にHomestead.yamlの変更を反映させるため、
Homesteadディレクトリでvagrant up —provisionを実行します。
(既に仮想環境がrunning状態の場合は、vagrant provision

これで複数環境を同時に運用する事ができます。

投稿2017/07/30 21:41

Archsted

総合スコア452

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

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

YorihiroKatsuki

2017/08/02 16:30

ご回答ありがとうございます! ご提示頂いた方法でやってみたのですが、 forum.appにアクセスした時に新しく作成したプロジェクトではなく、元々存在したプロジェクトのページが表示されてしまいます。 以下にHomestead.yamlの設定を記載いたしますので足りない点がございましたらご指摘頂けませんでしょうか? ````````````````````` ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/LaravelApp to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public schedule: true - map: forum.app to: /home/vagrant/Code/forum/public databases: - homestead - forum ````````````````````````` なお、hostsの設定、vagrant up --provision共に実施済みで、新プロジェクトの方にlaravelをインストール済みです。
Archsted

2017/08/02 17:12

まずは、provisionを再度していただき、その時のログで ==> default: Running provisioner: shell... default: Running: script: Creating Site: homestead.app ==> default: Running provisioner: shell... default: Running: script: Creating Site: forum.app というような、forum.appのsite作成に関する内容があるか、またエラーは出ていないかをご確認下さい。 また、ここ数か月の間でHomesteadの内部の作りが変わり、Homestead.yamlの場所が変わったりしているので、もしかしたら同名でパス違いのファイルを修正している可能性もあります。 (少し前までは~/.homesteadの中にあったけれど、今はHomesteadのインストールディレクトリの中にある、など。前者の場所も確認してみてください)
YorihiroKatsuki

2017/08/02 17:23

ちなみに、vagrant reload --provisionを行った際に以下のエラーが発生しています。(仮想マシン自体は起動出来ているようです) ``` Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was: mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant The error output from the command was: In some cases useful info is found in syslog - try dmesg | tail or so. ``` もしかしたらこれが原因?かもしれ無いのですが、 こちらの対応方法をもしご存知でしたらご教示頂けませんでしょうか。
YorihiroKatsuki

2017/08/02 17:50

ありがとうございます!! 自分でも調べてみて、LaracastsでVirtualBoxのバージョンが問題?のようなことが書いてあったので、VIrtualBoxを最新バージョンにしたら無事新プロジェクトの方のページを表示することが出来ました。 夜遅くまでお付き合い頂き本当にありがとうございます!! お陰様で次に進むことが出来ます。 ベストアンサーにさせて頂きますね^^ この度はありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問