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