1. Устанавливаем VirtualBox
-
Ставим.
2. Устанавливаем Vagrant
-
Ставим.
3. Устанавливаем Git
-
Ставим.
Homestead
4. Разворачиваем Homestead
Запускаем PowerShell или Win+R → cmd.
Ставим Homestead Vagrant образ:
vagrant box add laravel/homestead
Необходимо выбрать пункт 3, после чего начнется скачивание бокса, размер которого около 1GB. После того, как коробка скачается:
git clone https://github.com/laravel/homestead.git c:/Homestead cd c:/Homestead init.bat
5. Настраиваем Homestead под проект
Создаем папку под проект c:/Projects/<project-name>.
Открываем файл c:/Homestead/Homestead.yaml и меняем его содержимое на:
--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: Windows-путь до публичного SSH-ключа keys: - Windows-путь до приватного SSH-ключа folders: - map: c:/Projects/<project-name> to: /home/vagrant/code/<project-name> sites: - map: project-name.local to: /home/vagrant/code/<project-name>/public databases: - homestead
После чего добавляем в c:/Windows/System32/drivers/etc/hosts следующую строчку:
192.168.10.10 project-name.local
Laravel
6. Устанавливаем Laravel
Поскольку в образе виртуальной машины пока еще нет самого Laravel - устанавливаем его.
Переходим в папку, где установлен Homestead, и запускаем виртуалку:
vagrant up
Заходим в нее:
ssh vagrant@127.0.0.1 -p 2222
Или:
vagrant ssh
Устанавливаем Laravel (Composer стоит по умолчанию и прописан в PATH):
cd code composer create-project --prefer-dist laravel/laravel project-name
Пересобираем autoLoad:
cd project-name composer update
Выходим из виртуалки и перезагружаем ее:
exit vagrant reload --provision
Проброс портов:
- Локальный Виртуальный
- SSH: 2222 → Forwards To 22
- HTTP: 8000 → Forwards To 80
- HTTPS: 44300 → Forwards To 443
- MySQL: 33060 → Forwards To 3306
- Postgres: 54320 → Forwards To 5432
ВСЁ!
Теперь файлы в вашей папке c:/Projects/project-name автоматически синхронизируются с файлами в виртуальной машине, а сайт доступен по адресу http://project-name.local.
Однако Laravel пока будет отдавать страницу ошибки, поскольку Laravel еще не настроен.
7. Настраиваем Laravel
Главное, что нужно помнить: главным всегда считается то, что лежит внутри нашей виртуальной машины. Файлы, которые лежат в локальной папке, служат только для работы с СОБСТВЕННЫМ кодом, синхронизации его с кодом в виртуалке и отправки его в репозиторий. Использовать Composer локально ЗАПРЕЩЕНО.
Поднимаем виртуальную машину и заходим в нее:
vagrant ssh
Заходим в папку с файлами проекта, создаем в ней файл .env:
cd code/project-name touch .env
И прописываем в него следующее содержимое:
APP_NAME=MyProject APP_ENV=local APP_KEY=base64:3idSWBGO3eu8eebGiSRV4Toeo8M9/pcx1ur9VwKP/p4= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://project-name.local DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1
В секции DB_ установите РЕАЛЬНЫЕ параметры.
Устанавливаем имя проекту (не просто устанавливаем строчку в title, а переименовываем корневой namespace!) и генерируем новый ключ доступа:
php artisan key:generate
И напоследок нужно проверить, что веб-служба может писать в директории bootstrap/cache и storage.
Проделанных манипуляций вполне будет достаточно, чтобы по адресу http://project-name.local мы увидели приветственную надпись Laravel крупными буквами.
P.S.
- Если какая-то версия Vagrant не стартует, попробуйте более свежую. В статье не самая свежая версия.
- Виртуальное окружение будет использовать 2Gb памяти. Если у вас 2Gb или меньше, то можно указать меньший объем памяти в конфигурационном файле или использовать компьютер с большим объемом.
Комментарии