Doporučuji přejít na Docker
K lokálnímu vývoji na macOS jsem nakonec přešel na Docker. Následující návod sice funguje pro macOS Mojave, ale pro další verze macOS už ne. Doporučuji postupovat podle mého nejnovějšího návodu na instalaci Apache, MySQL a PHP na macOS pomocí Dockeru.
Poznámka: Tento příspěvek je určen pro nové instalace. Pokud jste nainstalovali Apache, PHP a MySQL pro Mac OS Sierra, přečtěte si můj příspěvek Aktualizace Apache, PHP a MySQL pro MacOS Mojave.
Jsem si vědom softwaru pro webové servery dostupného pro MacOS, zejména MAMP, a také správců balíčků, jako je brew
. Díky nim můžete rychle začít. Zříkají se však učení a, jak uvádí většina vývojářů, jejich správa může být obtížná.
Jde o to, že macOS běží nad systémem UNIX. Takže většina softwaru UNIX se na macOS snadno nainstaluje. Kromě toho jsou v systému macOS předinstalovány aplikace Apache a PHP. Pro vytvoření lokálního webového serveru stačí nakonfigurovat Apache a nainstalovat MySQL.
Spuštění příkazů
Nejprve otevřete aplikaci Terminál a přepněte se na uživatele root
, abyste mohli bez problémů spustit příkazy uvedené v tomto příspěvku:
sudo su -
Povolit Apache v systému macOS
apachectl start
Ověřit Funguje to! přístupem http://localhost
Povolit PHP pro Apache
Nejprve vytvořte zálohu výchozí konfigurace Apache. Je to dobrý postup a slouží to jako porovnání proti budoucím verzím systému macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.mojave
Nyní upravte konfiguraci Apache. Klidně použijte jiný editor, pokud neovládáte vi.
vi httpd.conf
Zakomponujte následující řádek (odstraňte #
):
LoadModule php7_module libexec/apache2/libphp7.so
Restartujte Apache:
apachectl restart
Ověřit, zda je PHP povoleno, můžete vytvořením phpinfo()
stránky v DocumentRoot
.
Výchozí DocumentRoot
pro macOS Mojave je /Library/WebServer/Documents
. Můžete to ověřit z konfigurace Apache.
grep DocumentRoot httpd.conf
Nyní vytvořte stránku phpinfo()
ve svém DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Ověřte PHP přístupem k http://localhost/phpinfo.php
Instalace MySQL na macOS Mojave
Stáhněte a nainstalujte nejnovější obecně dostupné vydání DMG MySQL pro macOS. I když je MySQL 8 nejnovější verzí, mnoho mých projektů stále používá MySQL 5.7. Proto stále dávám přednost instalaci starší verze.
Po dokončení instalace vám poskytne dočasné heslo. Před zavřením instalačního programu si toto heslo zkopírujte. V několika krocích ho budete znovu používat.
V README se doporučuje vytvořit aliasy pro mysql
a mysqladmin
. Existují však i další užitečné příkazy, například mysqldump
. Místo toho můžete aktualizovat cestu tak, aby obsahovala /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Poznámka: Aby se vaše cesta aktualizovala, budete muset otevřít nové okno Terminálu nebo spustit výše uvedený příkaz.
Nakonec byste měli spustit mysql_secure_installation
. I když to není nutné, je to dobrý postup pro zabezpečení vaší databáze. Zde také můžete změnit to nepříjemné dočasné heslo na něco lépe zvládnutelného pro místní vývoj.
Propojení PHP a MySQL
Musíte zajistit, aby spolu PHP a MySQL mohly komunikovat. Existuje několik možností, jak toho dosáhnout. Líbí se mi následující, protože nevyžaduje změnu mnoha konfigurací:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Další konfigurace (volitelná)
Výchozí konfigurace pro Apache 2.4 v systému MacOS mi připadala dost chudá. Například běžné moduly jako mod_rewrite
byly zakázány. Můžete zvážit, zda je nyní povolit, abyste v budoucnu nezapomněli, že jsou zakázané.
Upravil jsem konfiguraci Apache:
vi /etc/apache2/httpd.conf
Odkomentoval jsem následující řádky (odstraňte #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Pokud vyvíjíte více projektů a chcete, aby každý z nich měl jedinečnou url adresu, můžete nakonfigurovat Apache VirtualHosts pro macOS.
Pokud chcete nainstalovat PHPMyAdmin, vraťte se k mému původnímu příspěvku o instalaci Apache, PHP a MySQL v systému macOS.
Zajímá vás to? Pokračujme v konverzaci na Twitteru.