Do większości „pehapowych” projektów będzie potrzebny zestaw składający się z: PHP, serwera HTTP i bazy danych. Pokażę więc krok po kroku, jak te wszystkie narzędzia zainstalować na systemie Windows. Dodatkowo zainstalujemy również composer czyli dependency manager dla PHP.

Automatyczna instalacja

Jeśli chcielibyśmy w bardzo szybki i łatwy sposób zainstalować cały zestaw narzędzi potrzebnych do pracy z PHP, możemy po prostu zainstalować XAMPP. Ściągnięcie tej paczki, pozwoli Wam paroma kliknięciami zainstalować PHP, Apache i MariaDB.
Ja jednak z takiej paczki nie korzystam z paru powodów:
– brak możliwości samodzielnego doboru narzędzi (np. instalacji PHP o określonej wersji)
– jako serwer HTTP używam Nginx, a nie Apache
– lubię jak samemu panuję nad konfiguracją (mniejsza szansa, że mnie coś zaskoczy)

Dlatego w tym poradniku chciałbym pokazać Wam, jak ja skonfigurowałbym swoje środowisko programistyczne, gdybym używał Windowsa.

Ściągamy PHP i nginx

  1. Tworzymy sobie folder, w którym chcemy trzymać nasze projekty. Ja stworzyłem C:\Sites\, ale może to być dowolny folder. Dla przejrzystości, w dalszych przykładach będę używał mojej ścieżki.
  2. Wchodzimy na stronę PHP For Windows, gdzie pobieramy interesującą nas wersje PHP. Ważne byśmy pobrali paczkę ZIP z sekcji „VS16 x64 Non Thread Safe”. Jeśli chodzi o wersję, to polecam wybrać najnowszą dostępną (na dzisiaj jest to PHP 8.0.13).
  3. Wchodzimy na stronę nginx i wybieramy „nginx/Windows” z sekcji „stable version”. Powinno nam pobrać ZIPa.
  4. Oba ZIPy przenosimy do naszego folderu z punktu 1., a następnie rozpakowujemy.

Konfigurujemy nginx

Domyślnie nginx jest gotowy do działania, jednak brakuje mu obsługi PHP. Twórcy nginxa zostawili przykładową konfigurację, tylko że zakomentowaną. Musimy zatem te fragmenty odkomentować.

  1. Wchodzimy do folderu C:\Sites\nginx-1.20.1\nginx-1.20.1\conf. Edytujemy plik nginx.conf.
  2. Przewijamy do sekcji, która otwiera się fragmentem server {. Znajdujemy tam linię zaczynającą się od index i dodajemy tam „index.php” tak jak na poniższym zrzucie ekranu


  3. Znajdujemy fragment zaczynający się komentarzem „pass the PHP scripts to FastCGI server”. Odkomentowujemy linie z tą częścią konfiguracji (zaznaczone na czerwono):


  4. W tej samej części którą odkomentowaliśmy, musimy zamienić fragment /scripts$fastcgi_script_name na $document_root$fastcgi_script_name:

5. Zapisujemy plik. Możecie porównać swoje zmiany do mojego pliku nginx.conf, gdzie już są te wszystkie zmiany naniesione. Wasz plik może się ciut różnić, gdyż różne wersje nginx, mogą mieć różne domyślne konfiguracje.

Uruchamiamy PHP i nginx

  1. Uruchamiamy Wiersz poleceń (zamiast niego, możemy użyć dowolnego zamiennika, kiedyś pamiętam, że popularny był Cygwin, ale obecnie nie wiem czego ludzie używają). Ja robię to przez kliknięcie Menu Start i wpisanie „cmd”.


  2. Z Wiersza poleceń idziemy do folderu gdzie mamy PHP. Wpisujemy cd [ścieżka do folderu]. W moim przypadku wpisałem cd c:\Sites\php-8.0.12-nts-Win32-vs16-x64
  3. Następnie wpisujecie php-cgi.exe -b 127.0.0.1:9000


    W tej chwili w tle działa nam demon PHP. Będziemy musieli go uruchamiać za każdym razem, gdy będziemy chcieli popracować przy swoich projektach.
  4. Uruchamiamy kolejny Wierszy Poleceń i tym razem idziemy do folderu z nginxem: cd C:\Sites\nginx-1.20.1\nginx-1.20.1
  5. Nginxa uruchamiamy przez polecenie start nginx

Po tym wszystkim, otwieramy naszą przeglądarkę i wchodzimy pod nasz lokalny adres IP czyli http://127.0.0.1/. Jeżeli wszystko poszło dobrze, to powinniśmy zobaczyć taki widok:

Powyższy ekran potwierdza jedynie, że nginx jest uruchomiony. Jednak musimy również sprawdzić czy nasz serwer PHP również został poprawnie skonfigurowany.
W tym celu, musimy utworzyć plik index.php w folderze z naszą stroną. Domyślnie znajduje się ona pod ścieżką C:\Sites\nginx-1.20.1\nginx-1.20.1\html. Swoją drogą, ścieżkę tę możemy zmienić w pliku nginx.conf.

Żeby utworzyć plik PHP, otwieram powyższą ścieżkę w PhpStorm (edytor może być dowolny) i tworzę plik index.php który zawiera fragment:

<?php

phpinfo()



Jeżeli wszystko zrobiliśmy dobrze, to tym razem po odświeżeniu naszej strony w przeglądarce, powinniśmy zobaczyć mniej więcej coś takiego:



Na tym etapie mamy pewność, że nasza konfiguracja PHP + nginx działa bezbłędnie!

Konfiguracja PHP-CLI

Pamiętacie jak w poprzednim wpisie wspominałem o uruchamianiu kodu PHP z linii poleceń? Żeby móc uruchamiać nasz kod z dowolnego folderu, potrzebujemy dodać PHP do zmiennych środowiskowych. Można to zrobić w prostych krokach:

  1. Kopiujemy ścieżkę do folderu w którym przetrzymujemy PHP


  2. Następnie wchodzimy w ustawienia Zmiennych Środowiskowych (można znaleźć je w System -> Zaawansowane ustawienia systemu). Dodajemy nową ścieżkę, wklejając ze schowka adres, który skopiowaliśmy w kroku pierwszym.


  3. Po dodaniu nowej Zmiennej Środowiskowej, musimy uruchomić ponownie komputer. Po ponownym uruchomieniu wchodzimy w Wiesz Poleceń i sprawdzamy czy wszystko działa. Możemy wpisać php -v to powinno pokazać nam aktualnie zainstalowaną wersje PHP.
    Albo możemy stworzyć nowy plik PHP, identyczny jak z poprzedniego wpisu, który wyświetla na ekranie „Hello World”:

Composer

Composer to „dependency manager” dla PHP. Dzięki niemu, możemy w łatwy sposób dodawać do naszego projektu nowe biblioteki oraz stawiać projekty całkowicie od zera. Nie będę się teraz za bardzo zagłębiać w technikalia, ale composer to narzędzie, które jest wręcz niezbędne dla każdego „pehapowca”.
Szczęśliwie dla nas, composer można bardzo łatwo zainstalować na systemie Windows, gdyż odbywa się to przez graficzny instalator.



Po zainstalowaniu sprawdzamy czy wszystko się poprawnie zainstalowało, wpisując w Wierszu Poleceń „composer”:


Instalacja MySQL

Ostatnią rzeczą, jaką musimy przygotować, to nasz serwer bazy danych. Całe szczęście zainstalowanie MySQL na Windowsie również jest łatwe i odbywa się przez graficzny instalator.

  1. Pobieramy instalator MySQL na Windowsa z oficjalnej strony.
  2. Uruchamiamy instalator. Możecie skusić się na domyślną (pełną) instalacje, ale ja jednak ograniczyłbym się do aplikacji, które faktycznie mogą nam się przydać. Czyli „MySQL Server”, „MySQL Workbench”, „MySQL Shell” i „MySQL Router”.


  3. W pewnym momencie, instalator spyta nas o hasło dla „MySQL root”. Jest to hasło, które będziecie potrzebować do połączenia z waszym serwerem MySQL. Jako, że dopiero zaczynacie przygodę z PHP, to pewnie to hasło wielokrotnie pojawi się w Waszych aplikacjach jako „czysty tekst”, więc nie używajcie hasła, którego używacie do innych rzeczy. Jednocześnie pamiętajcie, że konto „root” daje nieograniczony dostęp do serwera MySQL, dlatego zbyt łatwe hasło również nie jest wskazane. Ważne, żebyście go nie zapomnieli 😅

    Użytkowników na razie nie musicie tworzyć. Będziemy to robić na późniejszym etapie.


  4. W kolejny kroku, instalator zasugeruje nam ustawienie MySQL jako service. Ja odznaczam „Start the MySQL Server at System Startup”. Serwer MySQL jest dość zasobożernym procesem, dlatego wolę uruchamiać go ręcznie.



    Po zakończonej instalacji, MySQL powinien uruchomić się automatycznie. Jeśli będziemy chcieli uruchomić MySQL po restarcie komputera, to wchodzimy w „Usługi systemu Windows”, znajdujemy MySQL i klikamy „Uruchom”.

  5. Sprawdzamy czy wszystko działa. Uruchamiamy MySQL Workbench i łączymy się z serwerem localhost, port 3306. Użytkownik root, a hasło takie, jakie ustawiliśmy w kroku 3.


Podsumowanie

Na tym etapie, mamy już w pełni przygotowane środowisko do pracy z PHP. Zakładam, że w wielu krokach, mogliście się troszkę pogubić, jednak nic się nie przejmujcie. Każda przeszkoda, to przygotowanie do bycia programistą, gdzie każdego dnia będziecie zmuszeni rozwiązywać przeróżne problemy. I to nie tylko z kodem, ale też właśnie środowiskiem.

Celowo też pokazałem ciut bardziej skomplikowany setup, by pokazać, że w programowaniu nic nie jest „prostoliniowe”, a dany cel można osiągnąć na różne sposoby. No i jednocześnie, jest to konfiguracja, której ja sam używam.

Pamiętajcie też, że przed każdą pracą, będziecie musieli uruchomić wszystkie usługi z naszego środowiska, czyli:
– PHP
– nginx
– MySQL

Może być to nieco upierdliwe, że każdą usługę trzeba zawsze uruchamiać po kolei, jednak docenicie to, jak będziecie chcieli zagrać w bardziej wymagającą grę i żaden „PeHaP” nie będzie wam zabierał zasobów waszego komputera. Z czasem, jeśli uruchamianie trzech różnych usług stanie się problemem, to może napiszecie swój własny script, który pozwoli uruchomić to wszystko jednym kliknięciem? 😉

Related Posts