Tento článek je určen webovým vývojářům, kteří chtějí v rámci nastavení svého vývojového prostředí na Macu nainstalovat webový server Apache.

Pokud jste vývojáři PHP, pak je tento článek předpokladem pro další článek, který vás provede instalací PHP pomocí Homebrew a PECL. Odkaz na tento článek najdete na konci této stránky.

Jako vývojář jsem se dříve spoléhal na verzi Apache, která byla předinstalována s operačním systémem na mém MacBooku Pro. Vzhledem k neustále se měnícím bezpečnostním pravidlům v macOS jsem se rozhodl změnit celý svůj přístup a místo toho distribuovanou verzi Apache vypnout a používat nastavení výhradně z Homebrew. Tento nový přístup umožňuje větší flexibilitu při vytváření verzí a bude nadále fungovat ve všech verzích systému macOS.

Tyto pokyny fungují stejně pro macOS 10.13 High Sierra i 10.14 Mojave. Na předchozích verzích macOS jsem to netestoval, ale mělo by to fungovat podobně. Pro použití tohoto článku také nemusíte začínat s čerstvou instalací operačního systému, ale zaznamenal jsem, že při upgradu na Mojave oproti čerstvé instalaci dochází k podivným věcem (např. po upgradu zcela chybí soubor s rozšířením mod_deflate.so). Doporučuji čerstvou instalaci, ale pokud se místo toho odvážíte upgradu, připravte se na to, že budete muset dohledávat některé soubory a cesty.

Začněme!

Získejte nejnovější aktualizace operačního systému

Pokud jste právě provedli čerstvou instalaci operačního systému, pravděpodobně toto nebudete potřebovat.

Instalace Xcode

Pokud nemáte zájem o instalaci celé aplikace Xcode, nevadí, instalační příkaz Homebrew nainstaluje základní nástroje příkazového řádku Xcode, které potřebuje. Doporučuji však plnou instalaci, zejména pokud používáte Mojave. Za tímto účelem můžete z terminálu spustit následující příkaz:

xcode-select --install

Install Homebrew

Následující příkaz nainstaluje Homebrew.

(Upozorňujeme, že následující příkaz je jednořádkový, který se kvůli omezení šířky stránky v Médiu zabalil. Ujistěte se, že jste zkopírovali celý řádek).

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Vytvoření adresářů souborů protokolu Apache

Apache je dodáván s předkonfigurovanými vlastními adresáři protokolu, ale my si vytvoříme vlastní adresář „/usr/local/log/“, abychom je v případě potřeby snadno našli. Pokud se chystáte přejít k dalšímu článku a nainstalovat PHP, budeme používat stejné umístění logů i pro logy PHP a budeme mít všechny logy na jednom místě.

Podle následujících kroků vytvoříte příslušné adresáře a nastavíte jejich oprávnění. Neberte ohled na případné hlášení „již existuje“.

$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/

Instalace a konfigurace Apache

MacOS 10.13 High Sierra a 10.14 Mojave jsou dodávány s předinstalovaným Apache. Místo použití dodávané verze však nainstalujeme Apache prostřednictvím Homebrew a poté jej nakonfigurujeme tak, aby běžel na portu 80.

Pokud již máte předinstalovaný Apache spuštěný, bude třeba jej nejprve vypnout a odstranit všechny automaticky načítané skripty. Není na škodu spustit oba následující příkazy, a to i při čerstvé instalaci.

(Všimněte si, že druhý příkaz je jednořádkový a kvůli omezení šířky stránky v Médiu se zabalil. Ujistěte se, že jste zkopírovali celý řádek).

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

Nyní nainstalujte novou verzi Apache, kterou poskytuje Homebrew.

$ brew install httpd

Jakmile to dokončíte, spusťte následující příkaz pro spuštění služby Apache a ujistěte se, že se automaticky restartuje při přihlášení.

$ brew services start httpd

Nyní jste nainstalovali verzi Apache od Homebrew a nastavili ji tak, aby se automaticky spouštěla při restartu. Měl by již běžet, takže byste měli být schopni nasměrovat prohlížeč na http://localhost:8080 a zobrazit jednoduchou hlavičku s nápisem „Funguje!“.

Všimněte si, že v současné době jsme nasměrováni na port 8080. V následujících krocích to změníme. Nyní, když máme funkční webový server, budeme chtít provést několik změn v konfiguraci, aby fungoval více podle našich představ … nebo vlastně jen podle mých představ ;-).

Otevřeme konfigurační soubor Apache:

$ open -e /usr/local/etc/httpd/httpd.conf

Změna portu naslouchání

Přejděte dolů a najděte řádek s nápisem „Listen 8080“ a změňte jej na;

Listen 80

Povolení užitečných modulů Apache

Dále můžete povolit následující dva užitečné moduly Apache. Následující dva řádky můžete vyhledat a odkomentovat odstraněním úvodní značky „#“.

Nápověda: řádek deflate je uprostřed sekce LoadModule a řádek rewrite je úplně dole v sekci LoadModule.

LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Změňte nastavení uživatele a skupiny Apache

Ve výchozím nastavení běží Apache jako uživatel _www a skupina _www. Za chvíli nastavíme náš výchozí adresář s dokumenty na adresář „Sites“ v domovské složce a toto nastavení uživatele a skupiny vám způsobí problémy s oprávněním při pokusu o přístup k souborům ve vašem domovském adresáři.

Přejděte asi o třetinu níže v souboru httpd.conf a najdete dva řádky, které nastavují uživatele a skupinu, pod kterými bude Apache spuštěn. Změňte je tak, aby odpovídaly vašemu uživatelskému účtu. Nahraďte your_username uživatelským jménem MacBooku a použijte název skupiny staff.

User your_username
Group staff

Nastavení správce serveru Apache a názvu serveru

Najděte řádek „ServerAdmin“ a povolte jej odstraněním úvodního hashtagu „#“ (pokud je to nutné) a poté změňte e-mail na svůj vlastní:

ServerAdmin [email protected]

Povolte název serveru Apache v konfiguraci odstraněním úvodního hashtagu „#“ a změňte jej na localhost:

ServerName localhost

Změna kořene dokumentu, adresáře a přepisů

Dále změníme kořen dokumentu pro Apache. Jedná se o adresář, ze kterého Apache hledá soubory pro servírování. Ve výchozím nastavení je kořenový adresář dokumentů nakonfigurován jako /usr/local/var/www. Protože vytváříme vývojové prostředí a chceme se vyhnout co nejvíce problémům s oprávněním k adresářům, změníme kořenový adresář dokumentů na adresář v našem domovském adresáři (který si za chvíli vytvoříme).

Pokračujte dolů a najděte řádek DocumentRoot. Změňte jej na znění:

DocumentRoot "/Users/your_username/Sites"

Dále je třeba změnit také odkaz na značku hned pod řádkem DocumentRoot. Ten by měl být také změněn tak, aby ukazoval na váš nový kořen dokumentu:

<Directory "/Users/your_username/Sites">;

V tomtéž bloku najdete nastavení AllowOverride. To by mělo být změněno z None na povolení „All“ přepisů:

AllowOverride All

Nastavení umístění chybového protokolu Apache

Nakonec nastavíme umístění chybového protokolu Apache do složky, kterou jsme vytvořili dříve. Posuňte se ještě o kousek níže a najděte řádek pro „ErrorLog“ a změňte jej na následující:

ErrorLog "/usr/local/log/httpd/error_log"

Uložte a ukončete textový editor.

Vytvoření složky Sites

Pomocí následujících dvou řádků vytvořte složku „Sites“ a přidejte index.html, abychom mohli začít:

(Všimněte si, že druhý příkaz je jediný řádek, který se kvůli omezení šířky stránky v Médiu zabalil. Ujistěte se, že jste zkopírovali celý řádek).

$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html

Restartujte Apache

Nyní restartujeme, abychom se ujistili, že jsou naše konfigurační nastavení správná:

$ sudo apachectl -k restart

Zkuste procházet váš localhost v jeho novém umístění: http://localhost

Pokud to funguje a zobrazí se hláška „It Works in my Sites Folder“, pak gratulujeme! Máte novou instanci webového serveru běžící na portu 80.

Pokud se objeví chyba, pravděpodobnou příčinou mohou být dvojité uvozovky použité kolem položek adresářů v souboru httpd.conf. Někdy je textové editory převádějí na uvozovky typu latinských znaků. Tyto uvozovky jsou nepovinné a lze je odstranit. Zkuste dvojité uvozovky odstranit a znovu spustit Apache.

admin

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

lg