Я довольно долго использовал XAMPP, и после обнаружения Laravel и выяснения, что мне это очень нравится, я также хотел использовать Homestead. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу запустить несколько сайтов.
Я пробовал разные вещи, но в настоящее время основная проблема заключается в том, что один проект работает, а все остальные получают таймаут соединения, пытаясь получить доступ к своей веб-странице.
Это шаги, которые я предпринял для использования Homestead
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
Homestead
каталоге Homestead
с bash init.sh
сценария bash init.sh
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
. Поэтому, если я позвоню vagrant up
из Project AI, вы сможете получить доступ к http://projecta.app
и http://projectb.app
. Точно так же, к сожалению.
Это мой vagrant global-status
id name provider state directory ------------------------------------------------------------------------ fc6fadb default virtualbox running /Users/mknb/work/projectA
Я думал, что просто сделаю еще одного vagrant up
из каталога projectB
но это, конечно, не работает.
Я не хочу использовать глобальную усадьбу, потому что Ларавель сказал, что возможно иметь установку per project
, и как мне ее достичь? Вам нужно больше информации?
Я не изменял Homestead.yaml
кроме IP и domainname homestead.app
=> projecta.app
Похоже, что глобальная установка довольно проста с Homestead, так как мне просто нужно добавить больше сайтов в Homestead.yaml, но, как я уже сказал, мне хотелось бы иметь установку на каждый проект. Может ли кто-нибудь помочь?
Запуск бродяг из каталога Homestead не работает, конечно.
Используя Homestead на вашем пути, вы создаете виртуальную машину для каждого проекта. Поэтому VirtualBox не может перенаправлять HTTP-запрос с вашего хост-компьютера для всей виртуальной машины. Вы можете запускать только одну машину (так, один проект) каждый раз.
Чтобы запустить несколько проектов с помощью Homestead, вы можете сделать следующее:
git clone https://github.com/laravel/homestead.git Homestead
Homestead
запустите bash init.sh
Отредактируйте свойство folders
~/.homestead/Homestead.yaml
чтобы поделиться своим кодом обоих проектов с VM:
folders: - map: ~/pj1 to: /path/to/project1 - map: ~/pj2 to: /path/to/project2
Отредактируйте свойство sites
~/.homestead/Homestead.yaml
чтобы Nginx ~/.homestead/Homestead.yaml
домен обоих сайтов:
sites: - map: project1.local to: /home/vagrant/pj1/public - map: project2.local to: /home/vagrant/pj2/public
Отредактируйте файл hosts
чтобы переадресовать этот домен fo localhost
127.0.0.1 project1.local 127.0.0.1 project2.local
vagrant up
в папке, в которой вы клонировали код Homestead внутри (который содержит файл init.sh
). Теперь вы можете запускать столько проектов, сколько хотите, только с одной виртуальной машиной Homestead.
В принятом ответе есть некоторые важные шаги, хотя это помогло мне. Я добавил эти необходимые шаги. Спасибо @Hieu Le за ответ.
Я предполагаю, что вы правильно установили свой кулачный сайт, как по инструкциям Laravel docs . Теперь у вас есть еще один сайт laravel, который вы хотите переложить на бродягу. Выполните следующие действия.
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
Отредактируйте файл хостов, чтобы переадресовать этот домен fo localhost
127.0.0.1 project1.local 127.0.0.1 project2.local
cd
в ваш первоначальный исходный каталог проекта. vagrant reload --provision
. Это перезагрузит бродячую машину так, чтобы изменения, которые мы вносили в файл .yaml
вступили в силу. База данных оригинального проекта останется без изменений. vagrant ssh
ls
и убедитесь, что вы видите папку вашего нового проекта. Если там вы правильно настроили свой новый сайт. http://
и ваши DONE. Как здесь сказано, вы можете установить Homestead прямо в свой проект, для этого нужно, чтобы этот composer require laravel/homestead --dev
в корневой директории каждого проекта, который у вас есть. Теперь командой 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
. Теперь, если вы vagrant ssh
из каждого проекта, у вас будет этот проект в вашей среде VM.
есть команда короткого вырезания, чтобы проксировать сайты, которые вы хотите добавить.
без необходимости испортить ваш файл Homestead.yaml и снова включить ваш бродячий ящик …
Это относится к ОБЩЕЙ ГЛОБАЛЬНОЙ И ПРОГРАММНОЙ УСТАНОВКЕ
Просто убедитесь, что вы добавляете еще один проект …
Вы добавляете его (весь проект) в свою общую папку, объявленную в вашем Homestead.yaml
Предполагая, что ваша общая папка – C:/Users/MYACCOUNT/Codes
Добавьте еще один проект в эту папку laravel new homestead.app
затем
Предполагая, что ваш ssh в вашем Homestead Type a.), Если вы используете nginx
serve homestead.app /home/Vagrant/Code/homestead/public
б) если вы используете hhvm serve-hhvm homestead.app /home/Vagrant/Code/homestead/public
Просто измените свое доменное имя и путь в общую папку вашего проекта
Затем отредактируйте файл etc / hosts как администратор
Какой IP-адрес вы определяете в своем Homestead.yaml
обычно по умолчанию – 192.168.10.10
Используйте его вместо 127.0.0.1
Зачем? потому что, если вы используете 127.0.0.1, ваш URL будет выглядеть как homestead.app:8000
Если вы используете IP-адрес в Homestead.yaml
192.168.10.10 homestead.app
вы можете получить доступ к своему сайту без порта 8000 и просто использовать homestead.app
Это решение намного лучше, чем предоставление … И быстрее …
Вот что я делаю