私はかなり長い間XAMPPを使用してきましたが、Laravel=を発見し、それが非常に気に入っていることを知り、Homesteadを使用したいと思いました。私が抱えている問題は、複数のサイトを実行することはできないようです。
私はさまざまなことを試しましたが、現在の主な問題は、1つのプロジェクトが機能する一方で、他のすべてのプロジェクトがWebページにアクセスしようとすると接続タイムアウトになることです。
これらは、ホームステッドを使用するために行った手順です
vagrant box add laravel/Homestead
を使用してHomesteadを追加するgit clone https://github.com/laravel/Homestead.git Homestead
bash init.sh
スクリプトを使用して、Homestead
ディレクトリにHomestead.yamlファイルを作成します。laravel new projectA
composer require laravel/Homestead
php vendor/bin/Homestead make
を生成laravel new projectB
composer require laravel/Homestead
php vendor/bin/Homestead make
を生成Sudo nano /etc/hosts
=> xxx.xx.xx.10 projecta.app
&xxx.xx.xx.11 projectb.app
vagrant up
今、私は問題を抱えています。プロジェクトの1つだけが到達可能であるということです。それは常に私がvagrant up
と呼んだ場所からのものです。したがって、プロジェクトAからvagrant up
を呼び出すと、http://projecta.app
とhttp://projectb.app
にアクセスできます。悲しいことに、他の方法でも同じです。
これは私のvagrant global-status
です
id name provider state directory
------------------------------------------------------------------------
fc6fadb default virtualbox running /Users/mknb/work/projectA
projectB
ディレクトリから別のvagrant up
を実行するだけだと思っていましたが、それはもちろん動作しません。
Laravel=は、per project
インストールが可能だと言っていたので、グローバルホームステッドを使用したくないので、どうすれば達成できますか?詳細情報が必要ですか? ?
IPとドメイン名を除いてHomestead.yaml
を変更しませんでしたHomestead.app
=> projecta.app
Homestead.yamlにサイトを追加するだけでよいので、Homesteadを使用したグローバルインストールはかなり簡単に思えますが、先ほど述べたように、プロジェクトごとにインストールしたいと思います。誰でも助けることができますか?
もちろん、Homesteadディレクトリからvagrantを起動することはできません。
あなたの方法でホームステッドを使用することにより、プロジェクトごとに仮想マシンを作成します。したがって、VirtualBoxは、仮想マシンのallに対してホストマシンからのHTTP要求を転送できません。毎回1台のマシン(つまり、1つのプロジェクト)しか実行できません。
Homesteadで複数のプロジェクトを実行するには、次のようにします:
git clone https://github.com/laravel/Homestead.git Homestead
Homestead
フォルダー内で、bash init.sh
を実行します~/.Homestead/Homestead.yaml
のfolders
プロパティを編集して、両方のプロジェクトのコードをVMと共有します。
folders:
- map: ~/pj1
to: /path/to/project1
- map: ~/pj2
to: /path/to/project2
~/.Homestead/Homestead.yaml
のsites
プロパティを編集して、Nginxが両方のサイトのドメインを有効にするようにします。
sites:
- map: project1.local
to: /home/vagrant/pj1/public
- map: project2.local
to: /home/vagrant/pj2/public
hosts
ファイルを編集して、これらのドメインをローカルホストに転送します
127.0.0.1 project1.local
127.0.0.1 project2.local
vagrant up
ファイルを含む)でinit.sh
を実行します。これで、たった1つのHomestead仮想マシンで必要な数のプロジェクトを実行できます。
それは私を大いに助けたが、受け入れられた答えに欠けているいくつかの重要なステップがあります。これらの必要な手順を追加しました。答えてくれてありがとう@ Hieu Le。
Laravel docs の指示に従って、最初のサイトを正しくインストールしたと仮定します。これで、別のlaravelサイトをvagrantに移行します。次の手順に従ってください。
cd
を新しいLaravelプロジェクトのディレクトリに追加します。追加するすべてのlaravelファイルとその使用MAMP
または非浮浪者のソリューション。vagrant init laravel/Homestead
を実行します。このコマンドは、この新しいプロジェクトに必要なVagrantFile
を追加します。Homestead.yaml
ファイルを開きます。承認された回答の@ Hieu Leで定義された手順に従って、.yaml
ファイルを変更します
folders: - map: ~/pj1 to: /path/to/project1 - map: ~/pj2 to: /path/to/project2 sites: - map: project1.local to: /home/vagrant/pj1/public - map: project2.local to: /home/vagrant/pj2/public
ホストファイルを編集して、これらのドメインをローカルホストに転送します
127.0.0.1 project1.local 127.0.0.1 project2.local
cd
で、最初の元の元のプロジェクトディレクトリに移動します。vagrant reload --provision
を実行します。これによりvagrantマシンがリロードされ、.yaml
ファイルで行った変更が有効になります。元のプロジェクトのデータベースはそのまま残ります。vagrant ssh
を実行しますls
を実行し、新しいプロジェクトのフォルダーが表示されることを確認します。その場合、新しいサイトを正しく構成しました。http://
を追加して新しいサイトのURLにアクセスすると、完了です。here のように、Homesteadをプロジェクトに直接インストールし、所有する各プロジェクトのルートディレクトリでこのcomposer require laravel/Homestead --dev
を使用してHomesteadを要求できます。これで、make
コマンドにより、Vagrantfile
およびHomestead.yaml
ファイルをプロジェクトのルートディレクトリに生成できます。
Mac/Linux:
php vendor/bin/Homestead make
ウィンドウズ:
vendor\bin\Homestead make
各プロジェクトルートには、編集するHomestead.yaml
ファイルがあります。
プロジェクトA
ip: "192.168.10.10"
...
folders:
- map: "~/Code/projecta"
to: "/home/vagrant/projecta"
sites:
- map: project.a
to: "/home/vagrant/projecta/public"
プロジェクトB
ip: "192.168.10.10"
...
folders:
- map: "~/Code/projectb"
to: "/home/vagrant/projectb"
sites:
- map: project.b
to: "/home/vagrant/projectb/public"
これを/etc/hosts
に追加します:
192.168.10.10 project.a
192.168.10.10 project.b
次に、各プロジェクトのルートとvagrant up
にcdする必要があります。これで、各プロジェクトからvagrant ssh
を実行すると、そのプロジェクトはVM環境にあります。
追加したいサイトをプロキシするためのショートカットコマンドがあります。
homestead.yamlファイルを台無しにして、再び浮浪者ボックスをプロビジョニングする必要はありません...
これは、グローバルおよびプロジェクトごとのインストールの両方に適用されます
別のプロジェクトを追加するかどうかを確認してください...
Homestead.yamlで宣言された共有フォルダーに(プロジェクト全体)を追加します
共有フォルダーがC:/Users/MYACCOUNT/Codes
そのフォルダーに別のプロジェクトを追加しますlaravel new Homestead.app
それから
あなたがホームステッドタイプでsshであると仮定しますa。)nginxを使用している場合
serve Homestead.app /home/Vagrant/Code/Homestead/public
b。)hhvmを使用している場合serve-hhvm Homestead.app /home/Vagrant/Code/Homestead/public
ドメインの名前とパスをプロジェクトのパブリックフォルダーに変更するだけです
次に、管理者としてetc/hostsファイルを編集します
Homestead.yamlで定義したIPアドレス
通常、デフォルトは192.168.10.10です
127.0.0.1の代わりに使用します
どうして? 127.0.0.1を使用する場合、URLはHomestead.app:8000のようになるためです。
Homestead.yamlでIPアドレスを使用する場合
192.168.10.10 Homestead.app
ポート8000なしでサイトにアクセスし、Homestead.appを使用するだけです。
このソリューションはプロビジョニングよりもはるかに優れています...そしてより高速です...
これが私がすることです