Instalacja PHP, MySQL, Nginx na macOS

Jako użytkownik Maca, uważam, że system ten świetnie nadaje się do programowania w PHP. Dlatego pokażę Wam, jak wygląda setup, którego używam na codzień. Do zainstalowania PHP wraz z niezbędnymi narzędziami, użyjemy Homebrew.

Instalacja Homebrew

Homebrew to menadżer pakietów dla macOS. W skrócie: pozwala on na instalowanie pakietów na systemie Mac z poziomu terminala (podobnie jak APT w Ubuntu). Instalacja PHP wraz z niezbędnymi narzędziami jest bardzo łatwa, właśnie dzięki Homebrew. Jednocześnie jest to narzędzie, które nie raz się przyda, nie tylko do celów programistycznych. Możliwe, że posiadasz już Homebrew, dlatego wtedy możesz śmiało pominąć ten akapit.

Wchodzimy na stronę główną Homebrew i kopiujemy do schowka komendę do instalacji Homebrew. W momencie pisania tego wpisu wygląda ona tak:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Otwieramy „Terminal” (ja w tym wpisie używam oficjalnego, wbudowanego w Macu, ale na codzień moim faworytem jest iTerm2). W terminalu wklejamy powyższą komendę.


Może nas spytać o zainstalowanie narzędzi pomocniczych XCode, na co się zgadzamy klikając Enter.


Na samym końcu poprosi nas o uruchomienie dwóch komend, które pozwolą dodać Homebrew do zmiennych środowiskowych.



Możemy sprawdzić czy wszystko poszło dobrze, wpisując
brew -v

Instalacja PHP

Do czasu wypuszczenia wersji MacOS 12 (Monterey), PHP było zainstalowane domyślnie w systemie. Jeśli tak jest w Waszym przypadku, to i tak powinniście zainstalować najnowszą wersję PHP z Homebrew, gdyż wraz z nią, zainstalujemy łatwo wszystkie potrzebne biblioteki.
Na szczęście, dzięki Homebrew, instalacja PHP sprowadza się do jednej komendy:
brew install php



Możemy sprawdzić czy wszystko się zainstalowało pomyślnie, przez komendę:
php -v


Instalacja nginx

Tak jak w przypadku PHP, zaczynamy również komendą:
brew install nginx



Po zainstalowaniu, nginx utworzy nam stronę testową pod adresem 127.0.0.1:8080. My jednak stworzymy własną pod folderem /Users/[twoja nazwa uzytkownika]/Sites/html. Naszym założeniem jest, żeby wszystkie nasze projekty trzymać w folderze Sites w katalogu domowym. Folder można stworzyć przez Finder lub inny graficzny program. Albo użyć do tego celu terminal:



Otwieramy folder projektu (/Users/[twoja nazwa użytkownika]/Sites/html) w naszym ulubionym edytorze. Ja użyłem teraz Sublime Text, ale na codzień używam PhpStorm, którego mocno polecam. Po otwarciu projektu, tworzymy plik index.html z przykładowym tekstem, np. „Hello World HTML”.


Teraz używając nano (edytor tekstu z poziomu terminala) lub dowolnego innego programu, otwieramy:
– /opt/homebrew/etc/nginx/nginx.conf (jeśli mamy procesor ARM)
– /usr/local/etc/nginx/nginx.conf (jeśli mamy procesor Intela)

W moim przypadku jest to ARM, więc otwieram plik komendą:
nano /opt/homebrew/etc/nginx/nginx.conf



Znajdujemy fragment jak na zrzucie ekranu poniżej i robimy trzy zmiany:
1. Zmieniamy „listen 8080” na „listen 80”
2. Zmieniamy „root html” na „root /Users/[twoja nazwa użytkownika]/Sites/html”
3. Między słowami „index” i „index.html” dodajemy „index.php”


Nie zamykamy jeszcze pliku, tylko przewijamy plik niżej by ujrzeć fragment („pass the PHP scripts to FastCGI server…”):



W tym fragmencie robimy następujące zmiany:
1. Odkomentowujemy całą klamrę „location ~ \.php”
2. Zmieniamy „root html” na „root /Users/[twoja nazwa uzytkownika]/Sites/html”
3. W linii „fastcgi_param SCRIPT_FILENAME” zamieniamy „/scripts” na „$document_root”.

Wszystkie zmiany są widoczne na poniższym zrzucie ekranu:


Zapisujemy plik. Teraz pozostaje nam zresetować nginx i PHP, używając do tego komend:
brew services restart php
brew services restart nginx


Teraz wchodzimy przez przeglądarkę na adres 127.0.0.1 i powinniśmy ujrzeć taki widok:


Jeśli do tej pory wszystko zadziałało jak należy, to znaczy, że nasz skonfigurowany nginx potrafi serwować pliki statyczne (jakim jest np. HTML). Powinniśmy też przetestować czy potrafi obsłużyć skrypt w PHP. Żeby to zrobić, tworzymy w naszym projekcie plik index.php o treści:
<?php

phpinfo();




Odświeżamy stronę w przeglądarce i powinniśmy tym razem zobaczyć:



Jeśli wszystko zadziałało jak należy, to możemy sobie pogratulować, bo najtrudniejszą część mamy już za sobą 😄

Instalacja composera

Composer jest to „menadżer zależności” dla PHP. Jest to wręcz niezbędne narzędzie, gdyż dzięki niemu możemy doinstalować zewnętrzne biblioteki do naszego projektu. Poza tym composer robi masę innych rzeczy, przez które „skleja” cały projekt w całość. Krótko mówiąc: jest to narzędzie, bez którego obecny świat PHP by nie istniał.

Instalacja composera odbywa się za pomocą jednej komendy:
brew install composer



Potem możemy sprawdzić czy został poprawnie zainstalowany wpisując: composer -v

Instalacja MySQL

Podobnie jak wcześniej, instalacja MySQL odbywa się przez Homebrew:
brew install mysql



Na końcu zostaniemy poinformowani że zostało utworzone konto „root” bez hasła, do którego dostęp będziemy mieć jedynie z poziomu własnego komputera (localhosta). Uruchamiamy serwer MySQL przez komendę:
brew services start mysql



Następnie powinniśmy przetestować nasze połączenie. Ja do tego celu użyję programu Sequel Ace:


Zanim się połączymy, możemy kliknąć „Test connection”. Wtedy powinniśmy zobaczyć komunikat „Connection succeeded” jak na powyższym zrzucie ekranu. Jeśli klikniemy „Connect” to powinno nas połączyć, gdzie będziemy mieć dostęp do paru testowych baz danych:

Podsumowanie

Jeśli udało Wam się przejść przez wszystkie etapy, to jesteście już gotowi, by zacząć pracę nad waszymi projektami w PHP. W kolejnym wpisie stworzymy wspólnie testowy projekt, jednak już teraz zachęcam Was do eksperymentowania, by bardziej zapoznać się z przygotowanym środowiskiem, jak i samym językiem programowania.

Na koniec dodam, że konfiguracja opisana w tym wpisie jest niemalże taka sama, jakiej używam na codzień od paru lat. Mogę zatem zagwarantować, że działa ona bezbłędnie i nadaje się do pracy nad zarówno komercyjnymi jak i hobbistycznymi projektami. Oczywiście czujcie się swobodnie, jeśli chcecie wprowadzić jakieś zmiany – w końcu to Wy musicie się czuć swobodnie z danym środowiskiem 😉

Related Posts