1. Устанавливаем VirtualBox
Редактируем файл:
Вставляем в него строчку:
Выполняем:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.2
sudo apt-get install dkmsЕсли требуются пакеты libpng12-0 и libvpx3, скачиваем их и устанавливаем как deb-пакеты.
2. Устанавливаем Vagrant
Выполняем:
wget https://releases.hashicorp.com/vagrant/2.1.2/vagrant_2.1.2_x86_64.deb
sudo dpkg -i vagrant_2.1.2_x86_64.deb3. Устанавливаем git
Если еще не установлен:
4. Разворачиваем Homestead
Необходимо выбрать пункт 2, после чего начнется скачивание бокса, размер которого около 1GB. После того как коробка скачается:
git clone https://github.com/laravel/homestead.git Homestead
cd Homestead
bash init.sh
cd ..
ssh-keygen -t rsa -C "your@email.com"5. Настраиваем Homestead под проект
Создаем папку под проект /home/<ваш-пользователь>/Projects/<project-name>.
Открываем файл Homestead/Homestead.yaml и меняем его содержимое на:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: /home/<ваш-пользователь>/.ssh/id_rsa.pub
keys:
- /home/<ваш-пользователь>/.ssh/id_rsa
folders:
- map: /home/<ваш-пользователь>/Projects/<project-name>
to: /home/vagrant/code/<project-name>
sites:
- map: project-name.local
to: /home/vagrant/code/<project-name>/public
databases:
- homesteadПосле чего добавляем в etc/hosts следующую строчку:
6. Устанавливаем Laravel
Поскольку в образе виртуальной машины пока еще нет самого Laravel - устанавливаем его.
Поднимаем виртуалку:
Заходим в нее:
или:
Устанавливаем 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
ВСЁ!
Теперь файлы в вашей папке ~/Projects/project-name автоматически синхронизируются с файлами в виртуальной машине, а сайт доступен по адресу http://project-name.local
Однако! Laravel пока будет отдавать страницу ошибки, поскольку Laravel еще не настроен.
7. Настраиваем Laravel
Главное, что нужно помнить: главным всегда считается то, что лежит внутри нашей виртуальной машины. Файлы, которые лежат в локальной папке, служат только для работы с СОБСТВЕННЫМ кодом, синхронизации его с кодом в виртуалке и отправки его в репозиторий. Использовать Composer локально - ЗАПРЕЩЕНО.
Поднимаем виртуальную машину и заходим в нее:
Заходим в папку с файлами проекта, создаем в ней файл .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!) и генерируем новый ключ доступа:
И напоследок нужно проверить, что веб-служба может писать в директории bootstrap/cache и storage.
Проделанных манипуляций вполне будет достаточно, чтобы по адресу http://project-name.local мы увидели приветственную надпись Laravel крупными буквами.
P.S.
- Если какая-то версия Vagrant не стартует, попробуйте более свежую. В статье не самая свежая версия.
- Виртуальное окружение будет использовать 2Gb памяти. Если у вас 2Gb или меньше, то можно указать меньший объем памяти в конфигурационном файле или использовать компьютер с большим объемом.
Комментарии