Я довольно долго использовал 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
Это решение намного лучше, чем предоставление … И быстрее …
Вот что я делаю