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 pro macOS Catalina funguje, ale má svá omezení. Doporučuji postupovat podle mého poslední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 Mojave, přečtěte si můj příspěvek Aktualizace Apache, PHP a MySQL pro macOS Catalina.

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á.

MacOS běží nad systémem UNIX. Většina softwaru UNIX se do systému macOS instaluje snadno. V systému MacOS jsou navíc předinstalovány aplikace Apache a PHP. Chcete-li tedy vytvořit místní webový server, 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! přístupem http://localhost

Povolit PHP pro Apache

Nejprve vytvořte zálohu výchozí konfigurace Apache. Je to dobrý postup a slouží jako porovnání proti budoucím verzím systému macOS.

cd /etc/apache2/cp httpd.conf httpd.conf.Catalina

Nyní upravte konfiguraci Apache. Klidně použijte jiný editor, pokud neovládáte vi.

vi httpd.conf

Zakomentujte 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 stránky phpinfo() ve svém DocumentRoot.

Výchozí DocumentRoot pro macOS Catalina 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 Catalina

Stáhněte a nainstalujte nejnovější obecně dostupné vydání MySQL DMG pro macOS. MySQL 8 je nejnovější verze. Pokud však potřebujete podporovat starší aplikace, jsou k dispozici i starší verze.

Po dokončení instalace vám poskytne dočasné heslo. Před zavřením instalačního programu toto heslo zkopírujte. V několika krocích jej použijete znovu.

V README se navrhuje 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 cesta aktualizovala, musíte 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.

Napsat komentář

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