Как развернуть локальную среду для разработки с Laravel (*nix)

Обсудить
Как развернуть локальную среду для разработки с Laravel

1. Устанавливаем VirtualBox

Редактируем файл:

sudo nano /etc/apt/sources.list

Вставляем в него строчку:

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

Выполняем:

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.deb
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

3. Устанавливаем git

Если еще не установлен:

sudo apt-get install git

4. Разворачиваем Homestead

vagrant box add laravel/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 следующую строчку:

192.168.10.10  project-name.local

6. Устанавливаем Laravel

Поскольку в образе виртуальной машины пока еще нет самого Laravel - устанавливаем его.

Поднимаем виртуалку:

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

ВСЁ!

Теперь файлы в вашей папке ~/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.

  1. Если какая-то версия Vagrant не стартует, попробуйте более свежую. В статье не самая свежая версия.
  2. Виртуальное окружение будет использовать 2Gb памяти. Если у вас 2Gb или меньше, то можно указать меньший объем памяти в конфигурационном файле или использовать компьютер с большим объемом.

Сервер VDS

Hello World! Гайды и обзоры для девелоперов разных мастей.

Комментарии

Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Войти в Комьюнити
Регистрация в Комьюнити
Восстановление пароля