Ten artykuł jest skierowany do programistów stron internetowych, którzy chcą zainstalować serwer Apache jako część swojego środowiska programistycznego na komputerze Mac.

Jeśli jesteś programistą PHP, to ten artykuł jest wstępem do następnego artykułu, który poprowadzi Cię przez instalację PHP przy użyciu Homebrew i PECL. Link do tego artykułu znajduje się na dole tej strony.

Jako programista, polegałem na wersji Apache, która była fabrycznie zainstalowana w systemie operacyjnym na moim MacBooku Pro. Ze względu na ciągle zmieniające się zasady bezpieczeństwa w macOS, zdecydowałem się zmienić całe moje podejście i zamiast tego wyłączyć dystrybuowaną wersję Apache i użyć konfiguracji całkowicie z Homebrew. To nowe podejście pozwala na większą elastyczność w wersjonowaniu i będzie nadal działać we wszystkich wersjach macOS.

Te instrukcje działają tak samo dla macOS 10.13 High Sierra i 10.14 Mojave. Nie testowałem na wcześniejszych wersjach macOS, ale powinno to działać podobnie. Ponadto, nie musisz zacząć od świeżej instalacji systemu operacyjnego, aby użyć tego artykułu, ale widziałem kilka dziwnych rzeczy się dzieje podczas aktualizacji do Mojave vs świeżej instalacji (np. całkowicie brakuje pliku rozszerzenia modułu mod_deflate.so całkowicie po aktualizacji). Zalecam świeżą instalację, ale jeśli zamiast tego odważysz się na aktualizację, przygotuj się na konieczność prześledzenia niektórych plików i ścieżek.

Zacznijmy!

Uzyskaj najnowsze aktualizacje systemu operacyjnego

Jeśli właśnie wykonałeś świeżą instalację systemu operacyjnego, prawdopodobnie nie będziesz musiał tego robić.

Instalacja Xcode

Jeśli nie jesteś zainteresowany instalacją całej aplikacji Xcode, to jest w porządku, polecenie instalacji Homebrew zainstaluje podstawowe narzędzia wiersza poleceń Xcode, które potrzebuje. Jednak zalecam pełną instalację, szczególnie jeśli używasz Mojave. Aby to zrobić, możesz uruchomić następujące polecenie z terminala.

xcode-select --install

Install Homebrew

Następujące polecenie zainstaluje Homebrew.

(Proszę zauważyć, że poniższe polecenie jest pojedynczą linią, która została zawinięta z powodu ograniczeń szerokości strony w Medium. Upewnij się, że skopiowałeś całą linię).

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

Utwórz katalogi plików logów Apache

Apache jest wstępnie skonfigurowany z własnymi katalogami logów, ale my stworzymy nasz własny folder „/usr/local/log/”, aby łatwo było je znaleźć, kiedy będą potrzebne. Jeśli zamierzasz przejść do następnego artykułu, aby zainstalować PHP, będziemy używać tej samej lokalizacji dla logów PHP i mieć wszystkie logi w jednym miejscu.

Postępuj zgodnie z tymi krokami, aby utworzyć odpowiednie katalogi i ustawić ich uprawnienia. Zignoruj wszelkie komunikaty „już istnieje”, które możesz otrzymać.

$ 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/

Instalacja i konfiguracja Apache

macOS 10.13 High Sierra i 10.14 Mojave dostarczane są z preinstalowanym Apache. Jednak zamiast korzystać z dostarczonej wersji, zainstalujemy Apache’a poprzez Homebrew, a następnie skonfigurujemy go do działania na porcie 80.

Jeśli masz już uruchomionego preinstalowanego Apache’a, trzeba będzie go najpierw wyłączyć i usunąć wszelkie skrypty automatycznego ładowania. Nie zaszkodzi uruchomić oba z poniższych poleceń, nawet na świeżej instalacji.

(Proszę zauważyć, że drugie polecenie jest pojedynczą linią, która została zawinięta z powodu ograniczeń szerokości strony w Medium. Upewnij się, że skopiowałeś całą linię).

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

Zainstaluj teraz nową wersję Apache dostarczoną przez Homebrew.

$ brew install httpd

Po zakończeniu tej operacji wykonaj następujące polecenie, aby uruchomić usługę Apache i upewnić się, że uruchomi się ona ponownie automatycznie po zalogowaniu.

$ brew services start httpd

Zainstalowałeś teraz wersję Apache dostarczoną przez Homebrew i skonfigurowałeś ją do automatycznego uruchamiania po ponownym uruchomieniu. Powinien on już działać, więc powinieneś móc skierować swoją przeglądarkę na http://localhost:8080 i zobaczyć prosty nagłówek, który mówi „To działa!”.

Uwaga, obecnie jesteśmy skierowani na port 8080. Zmienimy to w kolejnych krokach. Teraz, gdy mamy już działający serwer WWW, będziemy chcieli wprowadzić kilka zmian w konfiguracji, aby działał on bardziej zgodnie z naszymi upodobaniami … lub tak naprawdę tylko z moimi ;-).

Otwórzmy plik konfiguracyjny Apache:

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

Zmień port nasłuchiwania

Przewiń w dół i znajdź linię, która mówi, „Listen 8080” i zmień ją na;

Listen 80

Enable Useful Apache Modules

Następnie możesz włączyć następujące dwa przydatne moduły Apache. Możesz wyszukać następujące dwie linie i odkomentować je usuwając wiodący hashtag „#”.

Podpowiedź: linia deflate jest w środku sekcji LoadModule, a linia rewrite jest na samym dole sekcji LoadModule.

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

Zmień ustawienia użytkownika i grupy Apache

Domyślnie Apache działa jako użytkownik _www i grupa _www. Za chwilę ustawimy nasz domyślny katalog dokumentów na katalog „Sites” w katalogu domowym, a te ustawienia użytkownika i grupy spowodują problemy z dostępem do plików w katalogu domowym.

Przewiń o jedną trzecią w dół plik httpd.conf, a znajdziesz dwie linie, które ustawiają użytkownika i grupę, pod którymi Apache będzie działał. Zmień je tak, aby pasowały do Twojego konta użytkownika. Zamień your_username na nazwę użytkownika MacBooka i użyj nazwy grupy staff.

User your_username
Group staff

Ustaw administratora serwera Apache i nazwę serwera

Znajdź linię „ServerAdmin” i włącz ją, usuwając wiodący hashtag „#” (jeśli to konieczne), a następnie zmień e-mail na swój własny:

ServerAdmin [email protected]

Włącz nazwę serwera Apache w konfiguracji, usuwając wiodący hashtag „#” i zmieniając ją na localhost:

ServerName localhost

Zmień Document Root, Directory and Overrides

Następnie zmienimy document root dla Apache. Jest to katalog, z którego Apache poszukuje plików do serwowania. Domyślnie katalog główny dokumentu jest skonfigurowany jako /usr/local/var/www. Ponieważ tworzymy środowisko programistyczne i chcemy uniknąć jak największej liczby problemów z uprawnieniami do folderów, zmienimy katalog główny dokumentu na folder w naszym katalogu domowym (który wkrótce utworzymy).

Przewiń dalej w dół i znajdź linię DocumentRoot. Zmień ją na:

DocumentRoot "/Users/your_username/Sites"

Następnie, musisz również zmienić odnośnik do znacznika tuż pod linią DocumentRoot. To powinno być zmienione, aby wskazać na nowy korzeń dokumentu, jak również:

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

W tym samym bloku znajdziesz ustawienie AllowOverride. Powinno ono zostać zmienione z None na All overrides:

AllowOverride All

Set Apache Error Log Location

Na koniec, zamierzamy ustawić lokalizację dziennika błędów Apache na folder, który utworzyliśmy wcześniej. Przewiń w dół trochę dalej i znajdź linię dla „ErrorLog” i zmień ją tak, aby miała następujące brzmienie:

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

Zapisz i zamknij edytor tekstu.

Utwórz folder Sites

Użyj następujących dwóch linii, aby utworzyć folder „Sites” i dodać plik index.html, abyśmy mogli zacząć:

(Proszę zauważyć, że drugie polecenie jest pojedynczą linią, która została zawinięta z powodu ograniczeń szerokości strony w Medium. Upewnij się, że skopiowałeś cały wiersz).

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

Restart Apache

Teraz zrestartujemy Apache, aby upewnić się, że nasze ustawienia konfiguracyjne są poprawne:

$ sudo apachectl -k restart

Spróbuj wejść na swój localhost w jego nowej lokalizacji: http://localhost

Jeśli to zadziała i zobaczysz komunikat, „It Works in my Sites Folder” to gratulacje! Masz nową instancję serwera WWW działającą na porcie 80.

Jeśli otrzymasz błąd, prawdopodobną przyczyną mogą być podwójne cudzysłowy używane wokół wpisów katalogów w pliku httpd.conf. Czasami edytory tekstu konwertują je na cudzysłowy typu łacińskiego. Te cudzysłowy są opcjonalne i mogą zostać usunięte. Spróbuj usunąć podwójne cudzysłowy i zrestartować Apache’a ponownie.

admin

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

lg