Vývoj moderních webových aplikací na Mac

No já snad nevěřím svým očím! On vyvíjí na Macu! – tahle spontánní reakce mě přiměla sepsat své osobní zkušenosti s vývojem webových stránek pod nakousnutým jablkem. A zároveň připravit malý návod, jak do toho vlaku skočit taky.

No já snad nevěřím svým očím! On vyvíjí na Macu! – tahle spontánní reakce mě přiměla sepsat své osobní zkušenosti s vývojem webových stránek pod nakousnutým jablkem. Tento článek by zároveň měl sloužit jako odrazový můstek pro nové vývojáře webových stránek, kteří hodlají používat Mac. Nakonec je určen také těm, kteří rádi experimentují a poznávají nové světy.

Nudný úvod

Ten klidně můžete rovnou přeskočit na další kapitolu, pokud vás nezajímá historie operačního systému od firmy Apple.

Moderní éru desktopových operačních systémů odstartoval Mac OS X (Macintosh Operating System 10) v roce 2001 – jeho hlavním přínosem bylo UNIX jádro a nové grafické rozhraní. Od roku 2012 se z označení vytratilo z označení Mac. Operační systém je nyní označován pouze jako OS X. Jednotlivé verze jsou rozlišeny prostřednictvím kódového jména. Poslední stabilní verze nese označení OS X Mavericks (verze OS X 10.9). Během října 2014 se můžete těšit na další aktualizaci (OS X Yosemite).

Co budeme instalovat?

Za slovním spojením “moderní webové aplikace” se může skrývat téměř cokoliv. Budu tedy vycházet ze své vlastní konfigurace:

Balíčkovací systém

OS X nemá balíčkovací systém! (Uživatelé Linuxu se teď zhluboka nadechnou a přestanou panikařit.) Existují tři balíčkovací systémy, které nepochází z dílny Apple:

Začínal jsem s MacPorts a postupně zcela přešel na Homebrew. Pro který hovoří několik pozitiv:

  • více spoléhá na systém a používá systémové knihovny. Nese to s sebou větší závislost na systému, ale vyšší rychlost při kompilaci/instalaci balíčku.
  • je “pouhou” Ruby obálkou nad systémovými příkazy (make, configure, make install).
  • instaluje balíčky do /usr/local nepřepisuje tak systémové soubory, vytváří pouze symlinky.
  • programy se instalují pod aktuálně přihlášeným uživatelem.
  • instalační předpisy jsou kratší a lépe pochopitelné.

Takže si Homebrew nainstalujeme. Spusťte si aplikaci Terminál (⌘+Space – Terminal) a spusťte následující příkaz (bez sudo):

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Následujte instrukce na obrazovce:

==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1


Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir /usr/local

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Installing the Command Line Tools (expect a GUI popup):
==> /usr/bin/sudo /usr/bin/xcode-select --install

Nezapomeňte nainstalovat XCode Command Line Toolls (je tam hlavně kompilátor jazyka C).

install-xcode

xcode-select: note: install requested for command line developer tools
Press any key when the installation has completed.
==> Downloading and installing Homebrew..
==> Installation successful!
==> Next steps
Run `brew doctor` before you install anything
Run `brew help` to get started

Hotovo! Na závěr ověřte funkčnost pomocí příkazu brew doctor , měl by vypsat Your system is ready to brew.

Textový editor

Během celého instalačního procesu budete potřebovat upravit řadu konfiguračních souborů, proto si nejprve nainstalujte kvalitní textový editor. Doporučuji zvolit Sublime. Pomocí následujícího příkazu si po dokončení instalce vytvořte symlink subl, bude se vám hodit později:

sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /bin/subl

Začneme instalací NGINX

V terminálu spusťte příkaz brew install nginx a vyčkejte na dokončení. Pokud budete chtít spouštět NGINX automaticky po startu systému, vytvořte si následující symlink:

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents

Server spustíte pomocí příkazu nginx a funkčnost ověříte zadáním příkazu open http://localhost:8080

nginx

Více informací o konfiguraci NGINX naleznete zde: https://github.com/OzzyCzech/dotfiles/blob/master/readme.md#configuration

Instalace PHP-FPM

Před instalací PHP musíte nejprve naklonovat instalační předpisy:

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

Poté stačí spustit příkaz:

brew install --without-apache --with-fpm --with-mysql php55

Můžete vyrazit na kafe (máte cca 20 minut čas). Dále jistě budete potřebovat řadu PHP knihoven, ty vyhledáte pomocí příkazu brew search php55. Namátkou jsem vybral několik nejdůležitějších:

brew install php55-http
brew install php55-mongo
brew install php55-apcu
brew install php55-opcache
brew install php55-redis
brew install php55-xhprof
brew install php55-xdebug
# atd...

Po dokončení instalace přidejte do souboru ~/.bash_profile následující řádek:

export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

OS X totiž obsahuje starší verzi PHP, kterou nechceme používat. Restartujte terminál (⌘+Q) a pomocí příkazu php -v && php-fpm -v ověřte, že vše funguje, jak má.

PHP 5.5.15 (cli) (built: Aug  6 2014 13:46:45) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

Závěrem vytvořte symlink ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents, který PHP-FPM nastartuje po spuštění systému.

Více o konfiguraci PHP-FPM naleznete zde: https://github.com/OzzyCzech/dotfiles/blob/master/readme.md#configuration-and-phpini

Mongo, Redis, Memcached, Mysql

Ty můžete klidně nainstalovat najednou:

brew install mongodb redis mysql memcached

A pokud budete chtít vše spouštět po startu systému, vytvořte si symlinky:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents   # mongodb
ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents # memcached
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents     # redis
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents     # mysql

Případně si můžete jednotlivé služby spustit hned:

mongod --config /usr/local/etc/mongod.conf # mongodb
redis-server /usr/local/etc/redis.conf     # redis
/usr/local/opt/memcached/bin/memcached     # memcached
mysql.server start                         # mysql

Bude se vám hodit příkaz sudo lsof -i -P | grep -i "listen", pomocí kterého vypíšete všechny aplikace poslouchající na nějakém portu.

Nodejs a npm

Opět stačí spustit jednoduše spustit brew install nodejs balíčkovací systém npm bude nainstalován automaticky. Funkčnost ověříte pomocí příkazu node --version.

Git a bash

Instalace OS X obsahuje starší verzi git, můžete ji bez obtíží používat. Přesto doporučuji provést aktualizaci. Novější verzi nainstalujte pomocí příkazu brew install git.

Po dokončení instalace budete muset nový git prolinkovat do systému brew unlink git && brew link git. Restartujte terminál (⌘+Q) a spusťte příkaz git --version  – měli byste používat novější verzi.

Novější bash opět nainstalujete pomocí příkazu brew install bash. Poté je potřeba nastavit terminál, aby tento novější bash začal používat.

V okně Terminalu stiskněte ⌘+, (nebo přes menu Terminal > Preferences…) a v záložce Startup > Shell Open With nastavte cestu /usr/local/bin/bash a opět restartujte Terminal.

bash

Jak vše udržet funkční

Čas od času spusťte brew update && brew outdated a zastaralé aktualizujte pomocí brew upgrade [name] – ušetříte si tím spoustu nervů při aktualizaci velkého počtu balíčků najednou.

Homebrew uchovává všechny starší verze balíčků, má tendenci nekontrolovaně růst (brew info). Úklid provedete pomocí příkazu brew cleanup – tento příkaz odstraní všechny nepoužívané soubory a starší verze.

Závěrem ty osobní zkušenosti

Jsou tomu tři roky, co jsem opustil Ubuntu a ještě déle předtím Windows. Za tři roky jsem si zvykl na jiné rozložení klávesnice. Zvykl jsem si na ⌘+R místo F5 pro obnovení stránky v prohlížeči. A hlavně jsem si zvykl na to, že když něco funguje, tak to šetří spoustu drahocenného času.

  • Nové verze systému obvykle přežijete bezbolestně. Je lepší mít zadní vrátka v podobě zálohy na Time Machine.
  • Aktualizace systému (jedna až dvě ročně) se obvykle provedou bez vaší asistence v noci.
  • Více monitorů nebo projektor neznamená problém.
  • Notifikace, AirDrop, Spotlight, iMessage prostě fungují.

Abych jen nechválil. OS X není case sensitive (přestože se tak tváří). Pokud si disk naformátujete tak, aby skutečně case sensitive byl – nebude vám fungovat řada programů. Je tedy lepší dávat pozor při pojmenovávání souborů a nechat to tak, jak to je (Mac OS Extended (Journaled)).

OS X neumí nativně zapisovat na NTFS disky. Dříve nebo později na takový disk narazíte. Jedinou cestou je používat exFat nebo specializovaný software.

Každá záloha může selhat. Verzujte si své uživatelské nastavení a instalované balíčky: https://github.com/OzzyCzech/dotfiles

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 28

Přehled komentářů

Tomas Dvorak mac
Bubla Re: mac
Michal Re: mac
David Ondřich Re: mac
Tomas Dvorak Re: mac
mekele Re: mac
Lukas Re: mac
Jjjjjjj Re: mac
satai Re: mac
Roman Ožana Re: mac
expee Už rok...
VojtechBartos Vagrant
Vojtěch Mikšů Re: Vagrant
Michael Czolko Re: Vagrant
Vojtěch Mikšů Re: Vagrant
Michael Czolko Re: Vagrant
Roman Ožana Re: Vagrant
Honza Cerny Nahrada bash
Igor Hlina Re: Nahrada bash
satai Re: Nahrada bash
Roman Klos Re: Nahrada bash
MichalKleiner windows -> mac
Roman Ožana Doplnění k tomu NTFS
yedpodtrzitko co je to za oxymoron?
Roman Ožana Re: co je to za oxymoron?
yedpodtrzitko Re: co je to za oxymoron?
t00r
chleba MAMP
Zdroj: https://www.zdrojak.cz/?p=13067