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

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

ただいまの
回答率

88.03%

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 4,201

前提・実現したいこと

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/09 22:08

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

    キャンセル

checkベストアンサー

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/08/03 02: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.
    ```

    もしかしたらこれが原因?かもしれ無いのですが、
    こちらの対応方法をもしご存知でしたらご教示頂けませんでしょうか。

    キャンセル

  • 2017/08/03 02:33

    見た感じ、ここらへんが解決策になるかもですね。
    http://javabayashi.hatenablog.com/entry/2017/02/10/135852
    http://qiita.com/ozawan/items/9751dcfd9bd4c470cd82

    心苦しいのですが、上記のエラーは個人的に経験したことがないため、これで直らない場合はこれ以上お力になれないです・・・申し訳ありません。

    キャンセル

  • 2017/08/03 02:50

    ありがとうございます!!

    自分でも調べてみて、LaracastsでVirtualBoxのバージョンが問題?のようなことが書いてあったので、VIrtualBoxを最新バージョンにしたら無事新プロジェクトの方のページを表示することが出来ました。

    夜遅くまでお付き合い頂き本当にありがとうございます!!
    お陰様で次に進むことが出来ます。
    ベストアンサーにさせて頂きますね^^

    この度はありがとうございました!

    キャンセル

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

  • ただいまの回答率 88.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

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