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?

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)

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

I samego Valeta

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.

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.


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. Koneser prawdziwego piwa. W czasie pomiędzy kontuzjami biega.

  • AntoniK

    dzięki, tego właśnie potrzebowałem bo mam sporadyczny kontakt z PHP a bawienie się z vagrantem jest w takim wypadku bez sensu . dzisiaj to sprawdzę .

  • zakius

    nie wiem po co pisać główny wpis o maku, skoro najważniejsza jest wersja na linuksa (chociaż nie wiem na ile dobrze sobie radzi WSL z takimi rzeczami, ale zawsze można użyć pi), i nie wiem dlaczego niby Laravel jest nielubiany (zwłaszcza, że jeszcze niedawno to była ta nowa wielka rzecz)

    • nrm

      Co to znaczy „najważniejsza jest”? Dla kogo? 😉 Główny wpis o maku bo Valet jest tylko na Maka 😉 Fork linuksowy to zewnętrzna robota. Równie dobrze mogłeś zapytać dlaczego nie opisałem czegoś na windowsa 😉

      Co do kolejnego pytania: chyba nie ma drugiego tak hejtowanego produktu w świecie PHP jak Laravel i pewnie długo nie będzie 😉

      • zakius

        co do ostatniego to chyba jednak pierwszą pozycję zajmuje… PHP :p
        właśnie o forku warto by było napisać główny wpis i tylko zaznaczyć skąd pochodzi, z resztą sam tytuł sprawia, że wiele osób może nawet nie kliknąć i nie dowiedzieć się o istnieniu narzędzia, które działa i jest dostępne na ich system, czy podstawowy czy na maszynie testowej

        • nrm

          w sumie masz rację, nie pomyślałem o tym w ten sposób. Zawsze mi się wydaje, że jak ktoś ma Linuksa to już sobie wszystko ładnie sam skonfigurował 😉

          • zakius

            można sobie skonfigurować, ale jak jest jakieś narzędzie ułatwiające życie to warto je poznać

      • Riu

        No zaraz zaraz… a WordPress:D?

  • Buby

    Hm… php-dev na osx bez brew jest jak najbardziej możliwy i komfortowy… Ja osobiście używam macportów, i dla mnie to o niebo lepsze narzędzie niż brew.

    • nrm

      Mi nie musisz mówić, byłem użytkownikiem MacPortów 2009-2016 😉 Niedawno zmigrowałem na brew i żałuję, że nie zrobiłem tego wcześniej. <3 brew 😉

Send this to a friend

webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL