Laravel Homestead pro Windows 10
Vytvořit vývojové prostředí není vždy jednoduché a zabere vždy hodně času než začnete vůbec pracovat na svém projektu. Laravel na toto myslel a vytvořil proto pro Windows Vagrant balíček s názvem Homestead (pro Mac existuje Valet), který elegantním způsobem umožňuje využívat virtuální stroj a vytvořit prostředí velmi jednoduše a rychle. V tomto článku se dozvíte, jak Homestead bez problému rozběhnout na Windows 10.
Laravel Homestead je oficiální předpřipravený Vagrant balíček, který poskytuje vývojové prostředí bez nutnosti instalování PHP, webového serveru a dalších jiných serverových softwarů na váš lokální počítač. Nemusíte si tak na svůj operační systém instalovat všechny věci, jen aby jste si rozběhli svůj projekt. Vagrant je zcela nezávislý a pokud někde vznikne chyba, můžete balíček smazat a vytvořit znovu téměř během minuty.
Homestead běží na Windows, Mac (tam doporučuji využít spíše Valet) nebo Linux, a zahrnuje webový server Nginx, PHP 7.1, MySQL, Postgres, Redis, Memcached, Node a další věci, které potřebujete k vývoji Laravel aplikace. Zde je úplný seznam, které Homestead poskytuje:
Odkaz pro stažení Virtualboxu: https://www.virtualbox.org/wiki/Downloads
Odkaz pro stažení Vagrantu: https://www.vagrantup.com/downloads.html
Poté co je stáhnete prvně nainstalujte Virtualbox a až poté Vagrant. Pro dokončení instalace budete nejspíše potřebovat restartovat počítač.
Odkaz pro stažení: https://git-scm.com/download/win
Pokud dostanete odpověď jako chybu:
The box ‘laravel/homestead’ could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp’s Atlas, please verify you’re logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:
URL: [“https://atlas.hashicorp.com/laravel/homestead"]
Error:
pak musíte stáhnout a nainstalovat MS Visual C++ 2010 x86 Redistributables a spustit znovu příkaz:
vagrant box add laravel/homestead
Tímto příkazem by se měl ve Vagrantu přidat balíček laravel/homestead
. Poté zvolte číselnou volbu s Virtualboxem. Akce chvíli trvá a stažení balíčku závisí na rychlosti vašeho internetového připojení.
Díky tomu naklonujete Homestead repozitář do složky Homestead ve vašem uživatelském adresáři (C:\Users\uzivatelske_jmeno
).
Nyní vykonejte příkaz pro přesun do složky Homestead:
cd Homestead
A poté:
bash init.sh
který vytvoří konfigurační soubor Homestead.yaml
. Soubor se vytvoří ve složce C:\Users\uzivatelske_jmeno\Homestead
.
poté se vás příkazový řádek zeptá na dvě věci. Nepotřebujete nic vyplňovat, jen zmáčkněte enter kdykoliv to po vás bude něco chtít. Poté se příkaz vykoná, vytvoří se nový adresář .ssh
(pokud již neexistuje) společně s dvěma soubory s názvem id_rsa
a id_rsa.pub
jako jeho obsah.
— -
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
— ~/.ssh/id_rsa
folders:
— map: ~/Code
to: /home/vagrant/Code
sites:
— map: homestead.app
to: /home/vagrant/Code/Laravel/public
databases:
— homestead
# blackfire:
# — id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# — send: 50000
# to: 5000
# — send: 7777
# to: 777
# protocol: udp
Vysvětlím soubor krok za krokem a také ho upravím, aby se nám správně rozběhl homestead.
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
Tyto řádky popisují na které IP adrese bude náš homestead poslouchat - tedy 192.168.10.10 (můžete upravit), kolik paměti zkonzumuje (maximálně) - tedy 2048 (můžete upravit), bude využívat jedno CPU a poskytovatel je virtualbox.
authorize: ~/.ssh/id_rsa.pub
keys:
— ~/.ssh/id_rsa
Na těchto řádkách nastavujeme náš ssh klíč pro homestead. Pamatujete jak jsme v šestém kroku vytvořili naše ssh klíče? Na tyto klíče budeme v našem Homestead.yaml
odkazovat - po jeho editaci bude úprava v souboru vypadat takto:
authorize: c:/Users/uzivatelske_jmeno/.ssh/id_rsa.pub
keys:
— c:/Users/uzivatelske_jmeno/.ssh/id_rsa
Nezapomeňte používat malé písmena pro název disku (c namísto C) a lomítka dopředu (/) namísto lomítek dozadu (). Tento standard budeme dodržovat v celém souboru Homestead.yaml
.
folders:
— map: ~/Code
to: /home/vagrant/Code
Zde mapujeme adresář, který se bude používat na našem PC a ve Vagrantu. Představte si obyčejnou složku ve Windows, ve které když cokoliv změníte, změna ihned promítne i do Vagrantu - a naopak.
- map: ~/Code
značí adresář, který je umístěn v našem PC
to: /home/vagrant/Code
značí kde budeme mít přístup ke stejnému adresáři ve Vagrantu. Stále vám to není jasné? Tak si tyto řádky upravíme a po jejich změně by vše mělo být jasné:
folders:
— map: c:/www
to: /home/vagrant/Code
Adresáře c:/www
a /home/vagrant/Code
odkazují na stejný adresář. Pokud cokoliv změníte v /home/vagrant/Code
, pak se změna promítne i do adresáře c:/www
a naopak. V mým případě je c:/www
můj adresář s projekty. Můžete použít jakýkoliv název adresáře namísto /home/vagrant/Code
, například /home/vagrant/moje_projekty
.
sites:
— map: homestead.app
to: /home/vagrant/Code/Laravel/public
Nespleťte si tuto část s předchozí, tyto řádky nemají s předchozí částí folders
nic společného. Tato konfigurace říká, že pokud v našem prohlížeči zadáme adresu homestead.app
, pak Vagrant poskytne zdroje z adresáře /home/vagrant/Code/Laravel/public
. Samozřejmě jsme ještě nevytvořili složku s názvem Laravel
v našem adresáři /home/vagrant/Code
ve Vagrantu nebo v adresáři c:/www
v našem PC, ale vytvoříme ji o něco později, v desátém kroku. V budoucnu můžete vytvořit více projektů, pak konfigurace může vypadat takto:
sites:
— map: homestead.app
to: /home/vagrant/Code/Laravel/public
— map: site2.bla
to: /home/vagrant/Code/site2/public
— map: site3.yeap
to: /home/vagrant/Code/site3/public
Ještě jedna poznámka, prefix pro /Laravel/public
, což je /home/vagrant/Code
, musí být úplně stejný jako to: /home/vagrant/Code
z minulé sekce. V sekci folders
pokud jste použili /home/vagrant/libovolny_nazev
pro mapování vašeho projektu v PC, pak v této sekci musíte použít /home/vagrant/libovolny_nazev
jako prefix pro /Laravel/public
, takže celá cesta bude vypadat /home/vagrant/libovolny_nazev/Laravel/public
.
databases:
— homestead
Tyto řádky vytvoří ve Vagrantu databázi s názvem homestead
.
Po editaci Homestead.yaml tak bude soubor vypadat takto:
— -
ip: "192.168.10.10"
memory: 1024
cpus: 1
provider: virtualbox
authorize: c:/Users/Jerry/.ssh/id_rsa.pub
keys:
— c:/Users/Jerry/.ssh/id_rsa
folders:
— map: c:/www
to: /home/vagrant/Code
sites:
— map: homestead.app
to: /home/vagrant/Code/Laravel/public
databases:
— homestead
# blackfire:
# — id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# — send: 50000
# to: 5000
# — send: 7777
# to: 777
# protocol: udp
mezi IP adresou a odkazem musí být mezera tabulátorem. Pokud by chtěli přidat další odkazy, pak je jen přidejte na konec souboru:
192.168.10.10 homestead.app
192.168.10.10 site2.bla
192.168.10.10 site3.yeap
Nyní je homestead.app
přístupný v našem prohlížeči, ale ještě ho nezkoušejte, nic se vám nezobrazí, protože projekt ještě neexistuje.
Homestead zkratky
function homestead() { ( cd ~/Homestead vagrant $* ) }
Nyní s použitím git bash můžete spustit Vagrant odkudkoliv pomocí příkazu `homestead up`. Soubor `.bash_profile` se načítá při spuštění git bash, takže po jeho vytvoření je potřeba restartovat (vypnout/zapnout) konzoli. Poprvé vykonání příkazu `homestead up` chvíli trvá.
Příkazy pro spuštění a zastavení Vagrantu jsou tedy:
```php
homestead up
homestead halt
Spusťte Homestead pomocí příkazu homestead up
. Nyní stále v konzoli vykonejte příkaz:
homestead ssh
To vás přihlásí do Vagrantu. Napište ls
a zmáčkněte enter. Zjistíte, že existuje pouze jediná složka Code
. Napište cd Code
a opět zmáčkněte enter. Nyní se nacházíte v adresáři Code
. Opět vykonejte příkaz ls
a uvidíte, že je aktuálně zcela prázdná.
Právě teď je čas vytvořit náš první Laravel projekt. Vykonejte následující příkaz:
composer create-project --prefer-dist laravel/laravel Laravel
Vykonání příkazu chvíli potrvá a vytvoří novou složku Laravel
s celým frameworkem uvnitř. Po dokončení příkazu opět napište ls
a zmáčkněte enter a najednou uvidíte i složku Laravel
. Otevřete si i váš projektový adresář v PC (pro mě C:/www
) a zjistíte, že i zde existuje složka s názvem Laravel
. Teď vidíte, že adresář /home/vagrant/Code
a váš projektový adresář v PC jsou vlastně úplně stejné adresáře.
Zdroj: medium.com