fb pixel

Laravel Valet czyli proste i szybkie środowisko PHP na MacOS

|

MAMP, Vagrant, Docker. A gdyby tak dało się jeszcze prościej, szybciej i z niewielkimi wymaganiami sprzętowymi?

Czym jest (Laravel) Valet?

Valet to PHPowe środowisko developerskie dla systemu MacOS. Opiera się na pakietach instalowanych przez brew, a za core systemu robi phpowy skrypt, który ułatwia zarządzanie takim stackiem. Innymi słowy można powiedzieć, że to brakujący przez lata element scalający środowisko php-dev na MacOS, prosty, szybki i banalny w użyciu.

Wbrew nazwie nie jest przeznaczony tylko i wyłącznie dla nielubianego Laravela. Równie dobrze można w nim odpalić Symfony, Zenda czy nawet WordPressa, a mi zdarza się odpalić nawet jakieś straszne „legacy” na Kohanie.

A komu to potrzebne?

Laravel Valet? A komu to potrzebne?

Laravel Valet? A komu to potrzebne?

Przecież jest Docker, od biedy można użyć Vagranta. Owszem ale oba rozwiązania posiadają sporą barierę wejścia. Poza tym nawet jak ktoś już jest z nimi obeznany to jest sporo projektów dla których po prostu nie ma sensu bawić się w konteneryzację, a tym bardziej stawiać na osobnej wirtualce.

To też dobra opcja do „solodev” czyli jednoosobowych, prywatnych projektów z nikim nie współdzielonych i nie wymagających nic z zalet np. Dockera.

Valet też jest szybki i zajmuje mało pamięci (7MB!) co dla posiadaczy starszych Maców jest dosyć istotne. Sam jeszcze do niedawna siedziałem na MBP z 2009 r. gdzie Vagrant potrafił zagotować laptopa, a Docker niestety nie działał na tak starym sprzęcie.

Dlaczego korzystam z Valeta? Robi za moją piaskownicę, główne miejsce gdzie sobie szybko coś odpalam co niekoniecznie jest jakimś wielkim projektem posiadającym swoje środowisko na Vagrancie czy Dockerze. Raczej to coś mniejszego, często są to apki, które muszę odpalić, coś porobić, puścić commita i o nich zapomnieć. Zestawianie dla nich osobnego środowiska było by zupełnym spaleniem czasu (i pieniędzy). A dzięki Valetowi dorzucenie na szybko kolejnej apki do odpalenia zajmuje mi dosłownie kilka sekund!

Instalacja

Jak już wspomniałem Valet wymaga zainstalowanego menadżera pakietów brew ale nie znam żadnego developera korzystającego z Maca, który by tego nie miał.

Jeżeli wcześniej nie mieliśmy nic z PHP zainstalowanego to dorzucamy do brew nowe źródło:

(Jak korzystasz z brew to raczej już je masz ale na wszelki wypadek podaje, że potrzebne też będą dupes i versions)

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

A następnie instalujemy PHP 7.1 i Composera oraz ustawiamy PHP jako usługę:

brew install php71
brew install composer
brew services start php71

I samego Valeta

composer global require laravel/valet
valet install

Instalator doinstaluje (przez brew: Nginxa i DnsMasq). W tym momencie każde wywołanie czegokolwiek w domenie *.dev powinno zostać odpalone już przez naszego Nginxa. I tutaj istotna uwaga: gdybyś utknął w tym miejscu i pomimo tego, że ping ładnie dochodzi na 127.0.0.1 to nic się nie odpala, albo odpala się komunikat sugerujący, że to Apache (bodajże „It works!”, możesz sprawdzić po nagłówkach) to znaczy, że masz konflikt z domyślnie zainstalowanym Apache. Musisz go wyłączyć, żeby nie zajmował portu 80.

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null<

Konfiguracja

Używanie Valeta sprowadza się do korzystania z kilku komend na krzyż.

valet start | stop | restart

Chyba nie wymaga komentarza. Pamiętaj o restartach przy zmianie konfigu bo to oczywiście jest Nginx, który tego potrzebuje (odnosi się do manualnych zmian, valetowe komendy automatycznie restartują).

valet park powoduje ustawienie aktualnego katalogu jako głównego i od teraz jego zawartość jest dostępna pod domenami. Przykładowo masz katalog /workspace a w nim /projekt1, projekt2 itd. To po wywołaniu opcji park wszystkie te katalogi będą dostępne jako projekt1.dev, projekt2.dev itd. Przez valet forget kasujemy to ustawienie. Osobiście nie korzystam z opcji ‘park’, wolę dodać konkretną domenę (katalog) i mieć możliwość ustawienia na niej SSLa.

valet link | unlink <appname> to nasza podstawowa komenda. Wchodzimy do katalogu z apką, dajemy valet link projekt1 i od tego momentu jest ona dostępna pod http://projekt1.dev.

Do tego jeżeli potrzebujemy SSL szybko stukamy

valet secure | unsecure <appname>

I gotowe!

W razie problemów odsyłam do oficjalnej dokumentacji projektu.

Valet na Linuksa

W komentarzach pod poprzednim wpisem @jim1961 dał ciekawego linka: ktoś pokusił się o forka i dostosowanie tej koncepcji do Ubuntu.

Podsumowanie

Valet to idealne minimalistyczne środowisko developerskie dla PHP w szczególności jak nie potrzebujesz korzystać z Vagranta czy Dockera, a chcesz mieć możliwość łatwiej konfiguracji i korzystania z wszelkich innych powiązanych pakietów z brew (np. MySQl, MariaDB, dodatki do PHP). Co więcej, przy niewielkim nakładzie pracy można je dostosować aby odpalić jakieś „legacy” i/lub mieć kilka wersji PHP uruchomionych na raz bez żonglowania brew link/unlink ale o tym w następnym odcinku.

Dodaj na LinkedIn
Mirosław Okoński
Przede wszystkim admin, potem webdeveloper choć kiedyś było odwrotnie. Obecnie Full Stack Engineer, CTO i System Architect. Po godzinach fan dobrych seriali, których nigdy nie ma czasu obejrzeć. Kawożłop. Miłośnik piwa i Metaxy. W czasie pomiędzy kontuzjami biega.