Вступление
Laravel стремится сделать весь процесс разработки PHP восхитительным, включая вашу локальную среду разработки. Vagrant предоставляет простой и элегантный способ управления и предоставления виртуальных машин.
Laravel Homestead - это официальный, предварительно упакованный пакет Vagrant, который предоставляет вам прекрасную среду разработки, не требуя установки PHP, веб-сервера и любого другого серверного программного обеспечения на локальном компьютере. Больше не нужно беспокоиться о том, чтобы испортить вашу операционную систему! Бродячие коробки полностью одноразовые. Если что-то пойдет не так, вы можете уничтожить и заново создать коробку за считанные минуты!
Homestead работает на любой системе Windows, Mac или Linux и включает в себя веб-сервер Nginx, PHP 7.3, PHP 7.2, PHP 7.1, MySQL, PostgreSQL, Redis, Memcached, Node и все другие вкусности, необходимые для разработки потрясающего Laravel. Приложения.
Если вы используете Windows, вам может потребоваться включить аппаратную виртуализацию (VT-x). Обычно его можно включить через BIOS. Если вы используете Hyper-V в системе UEFI, вам может потребоваться дополнительно отключить Hyper-V для доступа к VT-x.
Включенное программное обеспечение
- Ubuntu 18.04
- Git
- PHP 7.3
- PHP 7.2
- PHP 7.1
- Nginx
- MySQL
- lmm for MySQL or MariaDB database snapshots
- Sqlite3
- PostgreSQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- avahi
- ngrok
- Xdebug
- XHProf / Tideways / XHGui
- wp-cli
- Minio
Дополнительное программное обеспечение
- Apache
- Crystal & Lucky Framework
- Dot Net Core
- Elasticsearch
- Go
- MariaDB
- MongoDB
- Neo4j
- Oh My Zsh
- Ruby & Rails
- Webdriver & Laravel Dusk Utilities
- Zend Z-Ray
Установка и настройка
Первые шаги
Перед запуском среды Homestead необходимо установить VirtualBox , VMWare , Parallels или Hyper-V, а также Vagrant . Все эти программные пакеты предоставляют простые в использовании визуальные установщики для всех популярных операционных систем.
Чтобы использовать провайдера VMware, вам необходимо приобрести как VMware Fusion / Workstation, так и плагин VMware Vagrant . Хотя это не является бесплатным, VMware может обеспечить более быструю производительность общих папок из коробки.
Чтобы использовать поставщика Parallels, вам необходимо установить плагин Parallels Vagrant . Это бесплатно.
Из-за ограничений Vagrant поставщик Hyper-V игнорирует все сетевые настройки.
Установка Усадьбы Vagrant Box
После того, как VirtualBox / VMware и Vagrant установлены, вы должны добавить коробку к вашей установке Vagrant, используя следующую команду в вашем терминале. Загрузка окна займет несколько минут, в зависимости от скорости вашего интернет-соединения:laravel/homestead
vagrant box add laravel/homestead
Если эта команда не выполнена, убедитесь, что ваша установка Vagrant обновлена.
Установка Усадьбы
Вы можете установить Homestead, клонировав репозиторий на свой хост-компьютер. Подумайте о клонировании репозитория в Homestead
папку в вашем «домашнем» каталоге, поскольку блок Homestead будет служить хостом для всех ваших проектов Laravel:
git clone https://github.com/laravel/homestead.git ~/Homestead
Вам следует проверить версию Homestead с тегами, поскольку master
ветка не всегда стабильна. Вы можете найти последнюю стабильную версию на странице релиза GitHub :
cd ~/Homestead
// Clone the desired release...
git checkout v8.4.0
После клонирования репозитория Homestead выполните команду из каталога Homestead, чтобы создать файл конфигурации. Файл будет размещен в каталоге Homestead:bash init.sh
Homestead.yaml
Homestead.yaml
// Mac / Linux...
bash init.sh
// Windows...
init.bat
Настройка усадьбы
Настройка вашего провайдера
provider
Ключ в вашем файле указывает , который должен быть использован поставщик Vagrant: , , , или . Вы можете установить это для поставщика, который вы предпочитаете:Homestead.yaml
virtualbox
vmware_fusion
vmware_workstation
parallels
hyperv
provider: virtualbox
Настройка общих папок
folders
Свойство файла перечислены все папки , которые вы хотите поделиться с окружающей средой Homestead. Поскольку файлы в этих папках изменяются, они будут синхронизироваться между вашим локальным компьютером и средой Homestead. Вы можете настроить столько общих папок, сколько необходимо:Homestead.yaml
folders:
- map: ~/code
to: /home/vagrant/code
Если вы создаете только несколько сайтов, это общее отображение будет работать просто отлично. Однако, поскольку количество сайтов продолжает расти, у вас могут возникнуть проблемы с производительностью. Эта проблема может быть болезненно очевидна на младших компьютерах или проектах, которые содержат очень большое количество файлов. Если у вас возникла эта проблема, попробуйте сопоставить каждый проект с его собственной папкой Vagrant:
folders:
- map: ~/code/project1
to: /home/vagrant/code/project1
- map: ~/code/project2
to: /home/vagrant/code/project2
Чтобы включить NFS , вам нужно всего лишь добавить простой флаг в конфигурацию вашей синхронизируемой папки:
folders:
- map: ~/code
to: /home/vagrant/code
type: "nfs"
При использовании NFS в Windows вы должны установить плагин vagrant-winnfsd . Этот плагин будет поддерживать правильные права пользователя / группы для файлов и каталогов в поле Homestead.
Вы также можете передать любые параметры, поддерживаемые синхронизированными папкамиVagrant, перечислив их под options
ключом:
folders:
- map: ~/code
to: /home/vagrant/code
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]
Настройка сайтов Nginx
Не знакомы с Nginx? Нет проблем. sites
Свойство позволяет легко сопоставить «домен» в папку на среде Homestead. Пример конфигурации сайта включен в файл. Опять же, вы можете добавить столько сайтов в вашу среду Homestead, сколько необходимо. Homestead может служить удобной виртуализированной средой для каждого проекта Laravel, над которым вы работаете:Homestead.yaml
sites:
- map: homestead.test
to: /home/vagrant/code/my-project/public
Если вы измените sites
свойство после предоставления поля Homestead, вам нужно будет повторно запустить его, чтобы обновить конфигурацию Nginx на виртуальной машине.vagrant reload --provision
Разрешение имени хоста
Homestead публикует имена хостов mDNS
для автоматического разрешения хостов. Если вы установили в своем файле, хост будет доступен по адресу . Настольные дистрибутивы MacOS, iOS и Linux включают поддержку по умолчанию. Windows требует установки Bonjour Print Services для Windows .hostname: homestead
Homestead.yaml
homestead.local
mDNS
Использование автоматических имен хостов лучше всего подходит для установок Homestead «на проект». Если вы размещаете несколько сайтов в одном экземпляре Homestead, вы можете добавить «домены» для ваших веб-сайтов в hosts
файл на вашем компьютере. hosts
Файл будет перенаправлять запросы на ваши Homestead сайтов в машину Homestead. В Mac и Linux этот файл находится по адресу . В Windows он находится по адресу . Строки, добавленные в этот файл, будут выглядеть следующим образом:/etc/hosts
C:\Windows\System32\drivers\etc\hosts
192.168.10.10 homestead.test
Убедитесь, что IP-адрес указан в вашем файле. После того как вы добавили домен в свой файл и запустили окно Vagrant, вы сможете получить доступ к сайту через веб-браузер:Homestead.yaml
hosts
http://homestead.test
Запуск Бродячей Коробки
Как только вы отредактируете файл по своему вкусу, запустите команду из каталога Homestead. Vagrant загрузит виртуальную машину и автоматически настроит ваши общие папки и сайты Nginx.Homestead.yaml
vagrant up
Чтобы уничтожить машину, вы можете использовать команду.vagrant destroy --force
За установку проекта
Вместо того, чтобы устанавливать Homestead глобально и использовать один и тот же блок Homestead для всех своих проектов, вы можете вместо этого настроить экземпляр Homestead для каждого проекта, которым вы управляете. Установка Homestead для каждого проекта может быть полезной, если вы хотите отправить ее Vagrantfile
вместе с вашим проектом, что позволяет другим, работающим над проектом, сделать это vagrant up
.
Чтобы установить Homestead непосредственно в свой проект, потребуйте его с помощью Composer:
composer require laravel/homestead --dev
После установки Homestead, используйте make
команду для генерации Vagrantfile
и файл в корневом каталоге проекта. Команда будет автоматически конфигурировать и директивы в файле.Homestead.yaml
make
sites
folders
Homestead.yaml
Mac / Linux:
php vendor/bin/homestead make
Окна:
vendor\\bin\\homestead make
Затем запустите vagrant up
команду в своем терминале и получите доступ к своему проекту в браузере. Помните, что вам все равно нужно будет добавить запись файла или домен по вашему выбору, если вы не используете автоматическое разрешение имени хоста.http://homestead.test
/etc/hosts
homestead.test
Установка MariaDB
Если вы предпочитаете использовать MariaDB вместо MySQL, вы можете добавить mariadb
опцию в свой файл. Эта опция удалит MySQL и установит MariaDB. MariaDB служит в качестве замены для MySQL, поэтому вы все равно должны использовать драйвер базы данных в конфигурации базы данных вашего приложения:Homestead.yaml
mysql
box: laravel/homestead
ip: "192.168.10.10"
memory: 2048
cpus: 4
provider: virtualbox
mariadb: true
Установка MongoDB
Чтобы установить MongoDB Community Edition, обновите файл с помощью следующей опции конфигурации:Homestead.yaml
mongodb: true
Установка MongoDB по умолчанию установит имя пользователя базы данных homestead
и соответствующий пароль secret
.
Установка Elasticsearch
Чтобы установить Elasticsearch, добавьте elasticsearch
параметр в свой файл и укажите поддерживаемую версию, которая может быть основной версией или точным номером версии (major.minor.patch). Установка по умолчанию создаст кластер с именем «усадьба». Никогда не следует предоставлять Elasticsearch больше половины памяти операционной системы, поэтому убедитесь, что на вашем компьютере Homestead выделено как минимум в два раза больше Elasticsearch:Homestead.yaml
box: laravel/homestead
ip: "192.168.10.10"
memory: 4096
cpus: 4
provider: virtualbox
elasticsearch: 6
Ознакомьтесь с документацией Elasticsearch, чтобы узнать, как настроить вашу конфигурацию.
Установка Neo4j
Neo4j - это система управления графической базой данных. Чтобы установить Neo4j Community Edition, обновите файл с помощью следующей опции конфигурации:Homestead.yaml
neo4j: true
Установка Neo4j по умолчанию установит имя пользователя базы данных homestead
и соответствующий пароль secret
. Чтобы получить доступ к браузеру Neo4j, зайдите через веб-браузер. Порты (Bolt), (HTTP) и (HTTPS) готовы обслуживать запросы от клиента Neo4j.http://homestead.test:7474
7687
7474
7473
Псевдонимы
Вы можете добавить псевдонимы Bash на свой компьютер Homestead, изменив aliases
файл в своем каталоге Homestead:
alias c='clear'
alias ..='cd ..'
После того, как вы обновили aliases
файл, вы должны заново подготовить компьютер Homestead с помощью команды. Это обеспечит доступность ваших новых псевдонимов на машине.vagrant reload --provision
Ежедневное использование
Доступ к усадьбе по всему миру
Иногда вам может понадобиться vagrant up
ваш компьютер Homestead из любой точки вашей файловой системы. Вы можете сделать это в системах Mac / Linux, добавив функцию Bash в свой профиль Bash. В Windows вы можете сделать это, добавив «пакетный» файл к себе PATH
. Эти сценарии позволят вам выполнить любую команду Vagrant из любой точки вашей системы и автоматически направят эту команду на установку Homestead:
Mac / Linux
function homestead() {
( cd ~/Homestead && vagrant $* )
}
Обязательно настройте путь в функции к месту фактической установки Homestead. После того, как функция установлена, вы можете запускать такие команды, как или из любой точки вашей системы.~/Homestead
homestead up
homestead ssh
Windows
Создайте командный файл в любом месте на вашем компьютере со следующим содержимым:homestead.bat
@echo off
set cwd=%cd%
set homesteadVagrant=C:\Homestead
cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%
set cwd=
set homesteadVagrant=
Обязательно настройте пример пути в сценарии к фактическому местоположению установки Homestead. После создания файла добавьте местоположение файла в свой . Затем вы можете запускать команды как или из любой точки вашей системы.C:\Homestead
PATH
homestead up
homestead ssh
Подключение через SSH
Вы можете подключиться к вашей виртуальной машине по SSH, введя команду vagrant ssh
терминала из вашего каталога Homestead.
Но, поскольку вам, вероятно, потребуется часто использовать SSH на вашем компьютере Homestead, рассмотрите возможность добавления описанной выше «функции» на ваш хост-компьютер для быстрого SSH в поле Homestead.
Подключение к базам данных
homestead
База данных настроена как для MySQL и PostgreSQL из коробки. Для еще большего удобства .env
файл Laravel настраивает платформу для использования этой базы данных из коробки.
Чтобы подключиться к базе данных MySQL или PostgreSQL из клиента базы данных вашего хост-компьютера, вы должны подключиться и к порту (MySQL) или (PostgreSQL). Имя пользователя и пароль для обеих баз данных / .127.0.0.1
33060
54320
homestead
secret
Эти нестандартные порты следует использовать только при подключении к базам данных с хост-компьютера. Вы будете использовать по умолчанию 3306 и 5432 порты в файле конфигурации базы данных Laravel поскольку Laravel работает в виртуальной машине.
Резервные копии базы данных
Homestead может автоматически создавать резервные копии вашей базы данных, когда ваш ящик Vagrant уничтожен. Чтобы использовать эту функцию, вы должны использовать Vagrant 2.1.0 или выше. Или, если вы используете более старую версию Vagrant, вы должны установить плагин. Чтобы включить автоматическое резервное копирование базы данных, добавьте в свой файл следующую строку :vagrant-triggers
Homestead.yaml
backup: true
После настройки Homestead будет экспортировать ваши базы данных mysql_backup
и postgres_backup
каталоги при выполнении vagrant destroy
команды. Эти каталоги можно найти в папке, где вы клонировали Homestead, или в корне вашего проекта, если вы используете метод установки для каждого проекта .
Снимки базы данных
Homestead поддерживает замораживание состояния баз данных MySQL и MariaDB и ветвление между ними с помощью Logical MySQL Manager . Например, представьте, что вы работаете на сайте с базой данных в несколько гигабайт. Вы можете импортировать базу данных и сделать снимок. Проделав некоторую работу и создав тестовое содержимое локально, вы можете быстро восстановить исходное состояние.
Под капотом LMM использует функцию тонкого снимка LVM с поддержкой копирования при записи. На практике это означает, что изменение одной строки в таблице приведет только к тому, что сделанные вами изменения будут записаны на диск, что значительно сэкономит время и место на диске во время восстановления.
Поскольку lmm
взаимодействует с LVM, он должен быть запущен как root
. Чтобы увидеть все доступные команды, запустите sudo lmm
внутри вашего Vagrant box. Общий рабочий процесс выглядит следующим образом:
- Импортируйте базу данных в
master
ветку lmm по умолчанию . - Сохраните снимок неизмененной базы данных, используя .
sudo lmm branch prod-YYYY-MM-DD
- Изменить базу данных.
- Запустите, чтобы отменить все изменения.
sudo lmm merge prod-YYYY-MM-DD
- Запустите для удаления ненужных веток.
sudo lmm delete <branch>
Добавление дополнительных сайтов
Как только ваша среда Homestead подготовлена и запущена, вы можете добавить дополнительные сайты Nginx для своих приложений Laravel. В одной среде Homestead вы можете запустить столько установок Laravel, сколько пожелаете. Чтобы добавить дополнительный сайт, добавьте сайт в свой файл:Homestead.yaml
sites:
- map: homestead.test
to: /home/vagrant/code/my-project/public
- map: another.test
to: /home/vagrant/code/another/public
Если Vagrant не управляет вашим файлом hosts автоматически, вам может понадобиться добавить новый сайт в этот файл:
192.168.10.10 homestead.test
192.168.10.10 another.test
Как только сайт будет добавлен, запустите команду из вашего каталога Homestead.vagrant reload --provision
Типы сайтов
Homestead поддерживает несколько типов сайтов, которые позволяют легко запускать проекты, не основанные на Laravel. Например, мы можем легко добавить приложение Symfony в Homestead, используя symfony2
тип сайта:
sites:
- map: symfony2.test
to: /home/vagrant/code/my-symfony-project/web
type: "symfony2"
Доступные типы сайтов являются: apache
, apigility
, expressive
, laravel
(по умолчанию), proxy
, silverstripe
, statamic
, symfony2
, symfony4
, и zf
.
Параметры сайта
Вы можете добавить дополнительные fastcgi_param
значения Nginx на свой сайт через params
директиву сайта. Например, мы добавим FOO
параметр со значением BAR
:
sites:
- map: homestead.test
to: /home/vagrant/code/my-project/public
params:
- key: FOO
value: BAR
Переменные среды
Вы можете установить глобальные переменные среды, добавив их в свой файл:Homestead.yaml
variables:
- key: APP_ENV
value: local
- key: FOO
value: bar
После обновления обязательно повторно подготовьте машину, запустив ее . Это обновит конфигурацию PHP-FPM для всех установленных версий PHP, а также обновит среду для пользователя.Homestead.yaml
vagrant reload --provision
vagrant
Настройка расписаний Cron
Laravel предоставляет удобный способ планировать задания Cron , планируя выполнение одной команды Artisan каждую минуту. Команда проверит расписание заданий, определенное в вашем классе, чтобы определить, какие задания следует запускать.schedule:run
schedule:run
App\Console\Kernel
Если вы хотите, чтобы команда запускалась для сайта Homestead, вы можете установить опцию при определении сайта:schedule:run
schedule
true
sites:
- map: homestead.test
to: /home/vagrant/code/my-project/public
schedule: true
Задание Cron для сайта будет определено в папке виртуальной машины./etc/cron.d
Настройка Mailhog
Mailhog позволяет вам легко перехватить вашу исходящую электронную почту и проверить ее, не отправляя почту получателям. Для начала обновите .env
файл, чтобы использовать следующие настройки почты:
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
После настройки Mailhog вы можете получить доступ к панели инструментов Mailhog по адресу .http://localhost:8025
Настройка Minio
Minio - это сервер хранения объектов с открытым исходным кодом с API-интерфейсом, совместимым с Amazon S3. Чтобы установить Minio, обновите файл с помощью следующей опции конфигурации:Homestead.yaml
minio: true
По умолчанию Minio доступен через порт 9600. Вы можете получить доступ к панели управления Minio, посетив страницу . Ключ доступа по умолчанию - это , а секретный ключ по умолчанию - . При доступе к Minio вы всегда должны использовать регион .http://homestead:9600/
homestead
secretkey
us-east-1
Чтобы использовать Minio, вам необходимо настроить конфигурацию диска S3 в файле конфигурации. Вам нужно будет добавить опцию в конфигурацию диска, а также изменить ключ на :config/filesystems.php
use_path_style_endpoint
url
endpoint
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'endpoint' => env('AWS_URL'),
'use_path_style_endpoint' => true
]
Наконец, убедитесь, что ваш .env
файл имеет следующие параметры:
AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://homestead:9600
Чтобы подготовить контейнеры, добавьте buckets
директиву в файл конфигурации Homestead:
buckets:
- name: your-bucket
policy: public
- name: your-private-bucket
policy: none
Поддерживаемые policy
значения: none
, download
, upload
, и public
.
Порты
По умолчанию следующие порты перенаправляются в вашу среду Homestead:
- SSH: 2222 → Forwards To 22
- ngrok UI: 4040 → Forwards To 4040
- HTTP: 8000 → Forwards To 80
- HTTPS: 44300 → Forwards To 443
- MySQL: 33060 → Forwards To 3306
- PostgreSQL: 54320 → Forwards To 5432
- MongoDB: 27017 → Forwards To 27017
- Mailhog: 8025 → Forwards To 8025
- Minio: 9600 → Forwards To 9600
Переадресация дополнительных портов
При желании вы можете перенаправить дополнительные порты в окно Vagrant, а также указать их протокол:
ports:
- send: 50000
to: 5000
- send: 7777
to: 777
protocol: udp
Поделиться своей средой
Иногда вы можете поделиться тем, над чем вы сейчас работаете, с коллегами или клиентом. Vagrant имеет встроенный способ поддержки этого через vagrant share
; однако это не будет работать, если в вашем файле настроено несколько сайтов .Homestead.yaml
Чтобы решить эту проблему, Homestead включает в себя собственную share
команду. Чтобы начать, вставьте SSH в свою машину Homestead vagrant ssh
и запустите . Это позволит поделиться сайтом из вашего файла конфигурации. Вы можете заменить любой другой настроенный вами сайт на :share homestead.test
homestead.test
Homestead.yaml
homestead.test
share homestead.test
После выполнения команды вы увидите экран Ngrok, который содержит журнал активности и общедоступные URL-адреса для общего сайта. Если вы хотите указать пользовательский регион, поддомен или другой параметр времени выполнения Ngrok, вы можете добавить их в свою share
команду:
share homestead.test -region=eu -subdomain=laravel
Помните, что Vagrant по своей природе небезопасен, и вы запускаете
share
команду для своей виртуальной машины в Интернете .
Несколько версий PHP
Homestead 6 представил поддержку нескольких версий PHP на одной виртуальной машине. Вы можете указать, какую версию PHP использовать для данного сайта в вашем файле. Доступные версии PHP: «7.1», «7.2» и «7.3» (по умолчанию):Homestead.yaml
sites:
- map: homestead.test
to: /home/vagrant/code/my-project/public
php: "7.1"
Кроме того, вы можете использовать любую из поддерживаемых версий PHP через CLI:
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list
Веб-серверы
Homestead по умолчанию использует веб-сервер Nginx. Однако он может установить Apache, если apache
указан тип сайта. Хотя оба веб-сервера могут быть установлены одновременно, они не могут работать одновременно. flip
Команда оболочки доступна для упрощения процесса переключения между веб - серверами. Команда flip
автоматически определяет, какой веб-сервер запущен, отключает его, а затем запускает другой сервер. Чтобы использовать эту команду, введите SSH на свой компьютер Homestead и выполните команду на своем терминале:
flip
Почта
Homestead включает в себя агент передачи почты Postfix, который 1025
по умолчанию прослушивает порт . Таким образом, вы можете указать приложению использовать smtp
почтовый драйвер для localhost
порта 1025
. Затем вся отправленная почта будет обработана Postfix и перехвачена Mailhog. Чтобы просмотреть отправленные письма, откройте http://localhost:8025 в своем веб-браузере.
Отладка и профилирование
Отладка веб-запросов с помощью Xdebug
Homestead включает поддержку пошаговой отладки с помощью Xdebug . Например, вы можете загрузить веб-страницу из браузера, и PHP подключится к вашей IDE, чтобы разрешить проверку и изменение работающего кода.
Чтобы включить отладку, запустите следующие команды в вашем окне Vagrant:
sudo phpenmod xdebug
# Update this command to match your PHP version...
sudo systemctl restart php7.3-fpm
Далее следуйте инструкциям вашей IDE, чтобы включить отладку. Наконец, настройте ваш браузер на запуск Xdebug с расширением или букмарклетом .
Xdebug заставляет PHP работать значительно медленнее. Чтобы отключить Xdebug, запустите приложение
sudo phpdismod xdebug
Vagrant и перезапустите службу FPM.
Отладка приложений CLI
Чтобы отладить приложение PHP CLI, используйте xphp
псевдоним оболочки внутри вашего Vagrant box:
xphp path/to/script
Автозапуск Xdebug
При отладке функциональных тестов, выполняющих запросы к веб-серверу, проще запустить автоматическую отладку, чем изменять тесты для прохождения через пользовательский заголовок или файл cookie для запуска отладки. Чтобы заставить Xdebug запускаться автоматически, измените его в окне Vagrant и добавьте следующую конфигурацию:/etc/php/7.#/fpm/conf.d/20-xdebug.ini
; If Homestead.yml contains a different subnet for the IP address, this address may be different...
xdebug.remote_host = 192.168.10.1
xdebug.remote_autostart = 1
Профилирование производительности PHP с использованием XHGui
XHGui - это пользовательский интерфейс для изучения производительности ваших PHP-приложений. Чтобы включить XHGui, добавьте в конфигурацию своего сайта:xhgui: 'true'
sites:
-
map: your-site.test
to: /home/vagrant/code/web
type: "apache"
xhgui: 'true'
Если сайт уже существует, запустите его vagrant provision
после обновления конфигурации.
Чтобы профилировать веб-запрос, добавьте его в качестве параметра запроса. XHGui автоматически прикрепит cookie к ответу, чтобы последующим запросам не требовалось значение строки запроса. Вы можете просмотреть результаты своего профиля приложения, перейдя к .xhgui=on
http://your-site.test/xhgui
Чтобы профилировать запрос CLI с использованием XHGui, добавьте к команде префикс :XHGUI=on
XHGUI=on path/to/script
Результаты профиля CLI можно просматривать так же, как результаты профиля веб-сайта.
Обратите внимание, что процесс профилирования замедляет выполнение скрипта, и абсолютное время может быть в два раза больше, чем в реальных запросах. Поэтому всегда сравнивайте процентные улучшения, а не абсолютные цифры. Также имейте в виду, что время выполнения включает в себя любое время, затраченное на паузу в отладчике.
Поскольку профили производительности занимают значительное дисковое пространство, они удаляются автоматически через несколько дней.
Сетевые интерфейсы
networks
Свойство сетевых интерфейсов конфигурирует для вашей среды Homestead. Вы можете настроить столько интерфейсов, сколько необходимо:Homestead.yaml
networks:
- type: "private_network"
ip: "192.168.10.20"
Чтобы включить мостовой интерфейс, настройте bridge
параметр и измените тип сети на public_network
:
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
Чтобы включить DHCP , просто удалите эту ip
опцию из вашей конфигурации:
networks:
- type: "public_network"
bridge: "en1: Wi-Fi (AirPort)"
Расширение Усадьбы
Вы можете расширить Homestead, используя скрипт в корневом каталоге вашего Homestead. В этом файле вы можете добавить любые команды оболочки, которые необходимы для правильной настройки и настройки вашей виртуальной машины.after.sh
При настройке Homestead Ubuntu может спросить вас, хотите ли вы сохранить исходную конфигурацию пакета или перезаписать ее новым файлом конфигурации. Чтобы избежать этого, вы должны использовать следующую команду при установке пакетов, чтобы избежать перезаписи любой конфигурации, ранее написанной Homestead:
sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install your-package
Настройки пользователя
При использовании Homestead в командных условиях вы можете настроить Homestead, чтобы он лучше подходил вашему стилю личного развития. Вы можете создать файл в корне вашей директории Homestead (той же директории, где находится ваша ). В этом файле вы можете сделать любую настройку, какую захотите; однако, не должен контролироваться по версии.user-customizations.sh
Homestead.yaml
user-customizations.sh
Обновление Усадьбы
Вы можете обновить Homestead в несколько простых шагов. Во-первых, вы должны обновить окно Vagrant с помощью vagrant box update
команды:
vagrant box update
Далее вам необходимо обновить исходный код Homestead. Если вы клонировали репозиторий, вы можете выполнить следующие команды в том месте, где вы изначально клонировали репозиторий:
git fetch
git checkout v8.4.0
Эти команды извлекают последний код Homestead из репозитория GitHub, извлекают последние теги, а затем извлекают последнюю версию с тегами. Вы можете найти последнюю стабильную версию на странице релизов GitHub .
Если вы установили Homestead через файл вашего проекта , вы должны убедиться, что ваш файл содержит и обновить ваши зависимости:composer.json
composer.json
"laravel/homestead": "^8"
composer update
Наконец, вам нужно будет уничтожить и регенерировать свою коробку Homestead, чтобы использовать последнюю версию Vagrant. Для этого выполните следующие команды в своем каталоге Homestead:
vagrant destroy
vagrant up
Настройки провайдера
VirtualBox
natdnshostresolver
По умолчанию Homestead настраивает natdnshostresolver
настройку на on
. Это позволяет Homestead использовать настройки DNS вашей операционной системы. Если вы хотите изменить это поведение, добавьте следующие строки в ваш файл:Homestead.yaml
provider: virtualbox
natdnshostresolver: 'off'
Символические ссылки в Windows
Если символические ссылки не работают должным образом на вашем компьютере с Windows, вам может потребоваться добавить следующий блок в ваш Vagrantfile
:
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
0 комментариев