Recommend switching to Docker
W końcu przestawiłem się na używanie Dockera do lokalnego rozwoju na macOS. Poniższy tutorial działa dla macOS Mojave, ale nie będzie działał dla przyszłych wersji macOS. Zalecam zastosowanie się do mojego ostatniego poradnika dotyczącego instalacji Apache, MySQL i PHP na macOS przy użyciu Dockera.
Uwaga: Ten post jest przeznaczony dla nowych instalacji. Jeśli zainstalowałeś Apache, PHP i MySQL dla Mac OS Sierra, przeczytaj mój post o Aktualizacji Apache, PHP i MySQL dla macOS Mojave.
Jestem świadomy oprogramowania serwera WWW dostępnego dla macOS, zwłaszcza MAMP, a także menedżerów pakietów, takich jak brew
. Dzięki nim można szybko rozpocząć pracę. Ale rezygnują z doświadczenia uczenia się i, jak donosi większość deweloperów, mogą stać się trudne do zarządzania.
Rzecz w tym, że macOS działa na szczycie UNIX. Więc większość oprogramowania UNIX instaluje się łatwo na macOS. Co więcej, Apache i PHP są preinstalowane w macOS. Aby utworzyć lokalny serwer WWW, wystarczy skonfigurować Apache i zainstalować MySQL.
Wykonywanie poleceń
Po pierwsze, otwórz aplikację Terminal i przełącz się na użytkownika root
, abyś mógł uruchomić polecenia w tym poście bez żadnych problemów z uprawnieniami:
sudo su -
Włącz Apache na macOS
apachectl start
Weryfikuj, czy działa! uzyskując dostęp do http://localhost
Włącz PHP dla Apache
Po pierwsze, wykonaj kopię zapasową domyślnej konfiguracji Apache. Jest to dobra praktyka i służy jako porównanie z przyszłymi wersjami macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.mojave
Teraz edytuj konfigurację Apache. Możesz użyć innego edytora, jeśli nie jesteś zaznajomiony z vi.
vi httpd.conf
Ukomentuj następującą linię (usuń #
):
LoadModule php7_module libexec/apache2/libphp7.so
Restart Apache:
apachectl restart
Możesz sprawdzić, czy PHP jest włączone, tworząc stronę phpinfo()
w swoim DocumentRoot
.
Domyślna DocumentRoot
dla macOS Mojave to /Library/WebServer/Documents
. Możesz to sprawdzić na podstawie konfiguracji Apache.
grep DocumentRoot httpd.conf
Teraz utwórz stronę phpinfo()
w swoim DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Weryfikuj PHP, uzyskując dostęp do http://localhost/phpinfo.php
Instalacja MySQL na macOS Mojave
Ściągnij i zainstaluj najnowsze ogólnie dostępne wydanie DMG MySQL dla macOS. Podczas gdy MySQL 8 jest najnowszą wersją, wiele moich projektów nadal używa MySQL 5.7. Więc nadal wolę instalować starszą wersję.
Gdy instalacja się zakończy, poda ci tymczasowe hasło. Skopiuj to hasło przed zamknięciem instalatora. Będziesz go używał ponownie w kilku krokach.
W README sugeruje utworzenie aliasów dla mysql
i mysqladmin
. Istnieją jednak inne polecenia, które są pomocne, takie jak mysqldump
. Zamiast tego możesz zaktualizować swoją ścieżkę, aby zawierała /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Uwaga: Będziesz musiał otworzyć nowe okno Terminala lub uruchomić powyższe polecenie, aby Twoja ścieżka została zaktualizowana.
Na koniec powinieneś uruchomić mysql_secure_installation
. Chociaż nie jest to konieczne, jest to dobra praktyka, aby zabezpieczyć swoją bazę danych. To jest również miejsce, gdzie możesz zmienić to paskudne tymczasowe hasło na coś bardziej zarządzalnego dla lokalnego rozwoju.
Połącz PHP i MySQL
Musisz upewnić się, że PHP i MySQL mogą komunikować się ze sobą. Istnieje kilka opcji, aby to zrobić. Podoba mi się poniższy sposób, ponieważ nie wymaga zmiany wielu konfiguracji:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Dodatkowa konfiguracja (opcjonalnie)
Domyślna konfiguracja dla Apache 2.4 na macOS wydawała się dość szczupła. Na przykład, wspólne moduły takie jak mod_rewrite
były wyłączone. Możesz rozważyć włączenie tego teraz, aby nie zapomnieć, że są wyłączone w przyszłości.
Edytowałem moją konfigurację Apache:
vi /etc/apache2/httpd.conf
Ukomentowałem następujące linie (usuń #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Jeśli rozwijasz wiele projektów i chciałbyś, aby każdy z nich miał unikalny adres url, możesz skonfigurować Apache VirtualHosts dla macOS.
Jeśli chcesz zainstalować PHPMyAdmin, wróć do mojego oryginalnego postu na temat instalacji Apache, PHP i MySQL na macOS.
Ciekawe? Kontynuujmy rozmowę na Twitterze.