Использование Laravel Homestead и Vagrant
Для локальной разработки я использую вирутальные машины. В основном - это Laravel Homestead. В официальной документации достаточно подробно описано, как эту виртуальную машину развернуть и использовать.
Но, тут возникла задача: с каждой версией обновляется ПО в этой виртуальной машине. Для legacy-проектов нужен старый софт (вроде, старых версий PHP, старых версий систем и т.п.).
Вот, что написано при загрузке виртуальной машины версии 7.0:
* Homestead 8.0.0 released! PHP 7.3 is now the default!
* Settler v7.0.0 released! Make sure you update
* Need PHP 5.6 or 7.0? Homestead 7.x Settler 6.4.0
То есть, для использования версии PHP 5.6 нужно использовать конфигурации версий 7.x (это файлы из репозитория Homestead).
Скачать себе определенную версию виртуальной машины:
vagrant box add --box-version "6.4.0" laravel/homestead
Это эталонный образ окружения, который будет использоваться Vagrant-ом. По умолчанию, загружается последняя доступная версия.
Настройка Homestead делается через файл homestead.yml, который находится в каталоге с файлами из репозитория.
Запустить два раза одну виртуальню машину с идентичными настройками нельзя (vagrant контролирует названия своих box-ов).
В файле настроек есть несколько параметров, которые нужно будет поменять.
ip: "192.168.10.11"
version: 6.4.0
name: homestead-6
- меняем ip-адрес (по умолчанию, 192.168.10.10)
- прописываем версию виртуальной машины, которую хотим использовать (по умолчанию, последняя версия в системе)
- прописываем название виртуальной машины (по умолчанию, homestead-<текущая_версия_виртуальной_машины>)текущая_версия_виртуальной_машины>
В итоге, в системе будет две версии виртуальной машины:
> vagrant box list
laravel/homestead (virtualbox, 6.4.0)
laravel/homestead (virtualbox, 7.0.0)
> vagrant global-status
id name provider state directory
-----------------------------------------------------------------------------
c2d0814 homestead-7 virtualbox poweroff C:/Projects/Homestead
91f9c87 homestead-6 virtualbox poweroff C:/Projects/vm
И не забыть, в настройках сайта файла homestead.yml написать версию php:
sites:
# Project
- map: project.test
to: /var/www/project/www
php: "5.6"
Документация по теме:
Евгений Вдовенко
Физик по образованию, занимаюсь веб-разработкой на PHP с 2013 года. Нравится ковырятся в Zend Framework/Expressive и Joomla CMS/Framework. В процессе разборок с Python. Подумываю посмотреть Go. Считаю PostgreSQL крутым продуктом и внедряю его везде, где могу.