Laravel: Valet
устанавливаем и настраиваем Laravel Valet для MacOS
Laravel Valet является средой разработки для поклонников яблочной продукции и минимализма.
Valet использует сервер Nginx, который включается на устройстве с mac OS в фоновом режиме при запуске машины. С помощью DnsMasq Valet перенаправляет запросы на локальный домен *.test
, предоставляя доступ к сайтам, установленным на рабочем компьютере.
Valet — это невероятно быстрая среда разработки Laravel, которой достаточно всего 7Мб оперативной памяти. Valet не является полной заменой Sail или Homestead, но представляет собой отличную альтернативу, в том случае когда разработчику нужны быстро настраиваемый базовый функционал и высокая скорость.
После установки Valet готов к работе со следующими фреймворками и решениями:
- Laravel
- Bedrock
- CakePHP 3
- ConcreteCMS
- Contao
- Craft
- Drupal
- ExpressionEngine
- Jigsaw
- Joomla
- Katana
- Kirby
- Magento
- OctoberCMS
- Sculpin
- Slim
- Statamic
- Symfony
- WordPress
- Zend
- Статические сайты
Функциональные возможности Valet можно расширить с помощью пользовательских драйверов.
Установка
Для установки Valet требуются mac OS и Homebrew. До начала установки необходимо убедиться, что никакие другие программы, в том числе Apache или Nginx, не занимают 80 порт локального компьютера.
В первую очередь нужно проверить актуальность установленной версии Homebrew:
brew update
Следующим шагом следует установить PHP с помощью Homebrew:
brew install php
После установки PHP необходимо установить менеджер пакетов Composer:
brew install composer
и добавить каталог $HOME/.composer/vendor/bin
в переменную окружения PATH
export PATH="$HOME/.composer/vendor/bin:$PATH";
После установки Composer можно установить Laravel Valet как глобальный пакет Composer:
composer global require laravel/valet
Наконец, команда:
valet install
настроит и установит Valet и DnsMasq, а так же добавит в автозапуск демоны, от которых зависит корректная работа Valet
После установки Valet можно выполнить из командной строки ping
любого домена *.test
, например:
ping foobar.test
Если Valet установлен правильно, домен будет доступен по адресу 127.0.0.1.
Как указывалось ранее, Valet автоматически запускает необходимые службы при каждой загрузке компьютера.
Версия PHP
По умолчанию Valet использует единую глобальную версию PHP для всех сайтов. Однако, можно выбрать версию PHP для каждого сайта с помощью команды valet use php@version
, например:
valet use php@8.2
При этом Valet установит указанную версию PHP с помощью Homebrew, если она не была установлена ранее.
Также в корне проекта можно создать файл .valetrc
, содержащий информацию о версии PHP, используемой сайтом:
php=php@8.2
После создания файла .valetrc
достаточно выполнить команду valet use
, и она найдет нужную версию PHP для сайта.
Следует помнить, что одновременно Valet работает только с одной версией PHP.
Парковка сайтов
Для взаимодействия с сайтами Valet предоставляет две команды: park
и link
.
Команда park
регистрирует указанный каталог как корневой, после чего все подкаталоги будут доступны в веб-браузере по адресу http://<directory-name>.test:
. Например:
cd ~/Sites
valet park
Так, если припаркованный каталог содержит каталог с именем “laravel”, приложение в этом каталоге будет доступно по адресу http://laravel.test
.
Команду link
также можно использовать для предоставления доступа к проектам Laravel. Эта команда полезна, когда требуется взаимодействие только с одним сайтом в каталоге, а не со всем каталогом:
cd ~/Sites/laravel
valet link
После того, как сайт привязан к Valet с помощью команды link
, к нему можно получить доступ, используя имя каталога. Таким образом, сайт из вышеприведенного примера, будет доступен по адресу http://laravel.test
.
Чтобы удалить каталог из списка припаркованных, нужна команда valet forget
, которую потребуется запустить из припаркованного каталога
Просмотреть все припаркованные пути можно с помощью команды valet paths
.
Защита сайтов с помощью TLS
По умолчанию Valet работает с сайтами по небезопасному протоколу HTTP. Однако, при необходимости с сайтами можно взаимодействовать по защищенному протоколу TLS с использованием HTTP/2. Для этго потребуется команда secure
.
Например, если сайт с Valet доступен по адресу laravel.test
, чтобы его защитить, нужно выполнить команду:
valet secure laravel
Чтобы «разблокировать» сайт и вернуться к протоколу HTTP, нужна команда unsecure
, аргументом которой, как и для secure
, является имя хоста:
valet unsecure laravel
Спасибо за внимание.