Klasa 2 · rozdział 1

PHP na serwerze i środowisko pracy

W klasie 1 skrypt działał w przeglądarce. Teraz przeglądarka prosi serwer o stronę, PHP wykonuje się na serwerze, a Ty dostajesz już gotowy HTML. Pojęcia takie jak serwer, Apache i PHP są też w słowniczku.

Po tym rozdziale powinieneś umieć

  • powiedzieć, że PHP działa po stronie serwera, a JavaScript — w przeglądarce;
  • wymienić role Apache, PHP i MySQL;
  • uruchomić XAMPP i otworzyć stronę przez http://;
  • wskazać katalog serwera i umieścić w nim plik .php;
  • wyświetlić konfigurację przez phpinfo();
  • odróżnić kod PHP od HTML i od JavaScriptu.

1. PHP jako język serwera

PHP (oryginalnie Personal Home Page, dziś PHP: Hypertext Preprocessor) to skryptowy język programowania wykonywany na serwerze. Zapisujesz plik .php. Serwer WWW (u nas Apache) rozpoznaje rozszerzenie, uruchamia interpreter PHP i odsyła do przeglądarki wynik — zwykle HTML.

Przeglądarka nie widzi Twojego kodu PHP. W DevTools, na karcie Elements, jest już tylko to, co echo i znaczniki HTML wyprodukowały. To odwrotność JavaScriptu z klasy 1: tam źródło skryptu dało się podejrzeć u klienta.

Żądanie i odpowiedź Przeglądarka wysyła żądanie pod adres (np. http://localhost/cwiczenia-php/witaj.php). Apache znajduje plik, PHP go wykonuje, serwer odsyła HTML. Ty w pasku adresu zawsze używasz http://, nigdy ikony pliku z pulpitu.

2. PHP a JavaScript z klasy 1

Oba języki są skryptowe i oba pojawiają się przy stronach WWW. Różni je miejsce wykonania i typowe zadanie.

JavaScript (klasa 1) PHP (klasa 2)
Gdzie się wykonuje Przeglądarka (klient) Serwer
Plik .js albo znacznik <script> .php
Jak uruchamiasz Otwierasz HTML w przeglądarce Otwierasz adres HTTP (Apache musi działać)
Co widzi użytkownik Może podejrzeć kod JS w DevTools Widzi wynik HTML, nie źródło PHP
Typowe zadanie Kliknięcie, zmiana treści, walidacja w przeglądarce Zapis do bazy, logowanie, wygenerowanie strony
Zmienna let imie = "Ania"; $imie = "Ania";
Wypisanie console.log, DOM echo (tekst trafia do HTML)
Nie zastępują się W gotowej aplikacji często są obok siebie: PHP przygotowuje stronę i dane, JavaScript reaguje w przeglądarce. W klasie 2 trzonem oceny jest serwer. JS z klasy 1 zostaje bazą (osadzanie skryptu, typy, DOM, formularz po stronie klienta).

3. Apache, PHP i MySQL

Lokalnie nie stawiasz trzech programów osobno „z palca”. Pakiet XAMPP instaluje stos: serwer WWW, interpreter PHP i bazę danych. Każdy element ma inną rolę.

Apache

Serwer HTTP. Przyjmuje żądanie z przeglądarki, znajduje plik w katalogu serwera, przy .php oddaje go interpreterowi, odsyła odpowiedź.

PHP

Interpreter języka. Czyta Twój skrypt i wykonuje go. Sam z siebie nie „słucha” portu 80 — robi to Apache.

MySQL to serwer bazy danych (w XAMPP jest w pakiecie). Na początku roku wystarczy wiedzieć, że jest i że podglądasz tabele w phpMyAdmin. Zapytania z PHP (PDO) przyjdą później.

phpMyAdmin Strona do zarządzania bazą w przeglądarce. W XAMPP: http://localhost/phpmyadmin. Na razie uruchomienie i pewność, że się otwiera.

4. XAMPP

Na sali i w domu na tych zajęciach używamy XAMPP. Domyślna instalacja: C:\xampp. Katalog stron (document root) to C:\xampp\htdocs. Serwisy włączasz w panelu sterowania XAMPP: Start przy Apache oraz — gdy będzie baza — przy MySQL.

Start

  1. Uruchom XAMPP Control Panel.
  2. Przy Apache kliknij Start (status zmienia się na zielony).
  3. Pliki stron kładziesz w C:\xampp\htdocs\….
  4. Adres w przeglądarce: http://localhost/nazwa-folderu/plik.php. Przykład: plik C:\xampp\htdocs\cwiczenia-php\witaj.php to http://localhost/cwiczenia-php/witaj.php.
Laragon W domu możesz trafić na Laragon (katalog C:\laragon\www, przycisk Start All). Zasada jest ta sama: plik PHP otwierasz przez http://, nigdy dwuklikiem. Na lekcjach i w poleceniach ćwiczeń obowiązuje XAMPP.
Dwuklik nie uruchomi PHP Jeśli otworzysz witaj.php jak dokument z dysku, w adresie pojawi się file://. Przeglądarka pokaże surowy tekst albo pusto — Apache i PHP w ogóle nie wezmą udziału. Zawsze sprawdzaj, czy pasek zaczyna się od http://.
Dobór środowiska XAMPP wystarczy do nauki i do zadania praktycznego na komputerze z zainstalowanym pakietem. Na sprawdzianie liczy się: serwer włączony, pliki we właściwym katalogu, strona otwarta przez HTTP. Edytorem nadal jest VS Code — tak jak w klasie 1.

5. Katalog serwera, konfiguracja i phpinfo

Katalog serwera (document root) to folder, z którego Apache serwuje pliki. W XAMPP: C:\xampp\htdocs. Podfolder cwiczenia-php ma adres http://localhost/cwiczenia-php/.

Pierwszy plik, np. witaj.php:

<!DOCTYPE html>
<html lang="pl">
<body>
<?php
  echo "Witaj na serwerze";
?>
</body>
</html>

W przeglądarce widzisz napis. W źródle strony (Ctrl+U) nie ma <?php — jest już tylko tekst i HTML.

phpinfo()

Funkcja wbudowana. Wypisuje wersję PHP, załadowane rozszerzenia, ścieżkę do pliku konfiguracyjnego php.ini i dziesiątki ustawień. Na start używasz jej jako testu: jeśli widzisz wielką fioletową tabelę, interpreter działa.

<?php
phpinfo();
Nie zostawiaj phpinfo na „produkcji” Strona z konfiguracją zdradza wersje oprogramowania. Na ćwiczeniach jest OK. Przed oddaniem większego zadania usuń taki plik albo nie linkuj go z gotowej witryny.

Konfiguracja PHP

Ustawienia leżą w php.ini (w XAMPP zwykle C:\xampp\php\php.ini; w panelu: Apache → Config → PHP). Na razie nie musisz nic zmieniać. W phpinfo znajdziesz m.in.:

  • Loaded Configuration File — który php.ini jest w użyciu;
  • error_reporting / display_errors — czy błędy widać na stronie (na sali zwykle tak; na publicznym serwerze szczegóły się ukrywa);
  • wersję PHP (np. 8.x).

Po zmianie php.ini trzeba zrestartować Apache (w panelu XAMPP: Stop, potem Start).

Zanim oddasz pracę
  1. XAMPP włączony (Apache działa).
  2. Pliki zapisane w katalogu serwera, nie na pulpicie „obok”.
  3. Adres to http://…, strona się odświeżyła.
  4. W przeglądarce widać wynik, a nie surowy kod PHP.
  5. Gdy będzie baza: MySQL działa, phpMyAdmin się otwiera (na razie jako sprawdzenie stosu).

Ćwiczenia do samodzielnego wykonania

Folder roboczy: C:\xampp\htdocs\cwiczenia-php. Nie trzymaj ćwiczeń wewnątrz folderu tego podręcznika.

Ćwiczenie 1. Serwer działa łatwe

  1. Włącz Apache w panelu XAMPP.
  2. Otwórz http://localhost/. Powinna pojawić się strona startowa pakietu albo lista katalogów.
  3. Otwórz phpMyAdmin. Nie musisz nic klikać w bazie — wystarczy, że strona się ładuje.

Ćwiczenie 2. phpinfo łatwe

Utwórz info.php z samym phpinfo();. Otwórz go przez HTTP. Odszukaj wersję PHP i wiersz Loaded Configuration File. Zapisz obie informacje w notatki.txt.

Ćwiczenie 3. Pierwszy echo łatwe

Plik witaj.php: poprawny szkielet HTML oraz blok PHP, który wypisuje Twoje imię i klasę. Sprawdź w źródle strony (Ctrl+U), że nie widać <?php.

Ćwiczenie 4. Zły sposób uruchomienia średnie

Świadomie otwórz ten sam witaj.php z dysku (dwuklik). Porównaj pasek adresu i wygląd z wersją http://. W notatkach jednym zdaniem opisz różnicę.

Ćwiczenie 5. Mapa stosu średnie

W notatkach dopasuj: Apache / PHP / MySQL / VS Code / przeglądarka do zdań: „wykonuje skrypt”, „serwuje pliki HTTP”, „przechowuje tabele”, „tu piszę kod”, „tu widzę wynik”.

Ćwiczenie 6. PHP a JS trudne

Dwa krótkie akapity własnymi słowami: (1) czego przeglądarka nigdy nie zobaczy z pliku PHP; (2) po co nadal potrzebny jest JavaScript, skoro jest PHP. Nie kopiuj tabeli z rozdziału.

Sprawdź się

1. Gdzie wykonuje się PHP na tych zajęciach?
2. Do czego służy Apache w XAMPP?
3. Który adres uruchomi skrypt PHP?
4. Co pokazuje phpinfo()?
5. Co użytkownik zobaczy w źródle strony zamiast bloku PHP z echo?

Wymagania na ocenę

Ocena wyższa zawiera wymagania na oceny niższe. Dotyczy środowiska i wstępu do PHP.

Ocena Uczeń
2 Wie, że PHP działa po stronie serwera. Uruchamia gotowy plik .php w środowisku lokalnym według wzoru.
3 Korzysta z XAMPP oraz phpMyAdmin na poziomie uruchomienia.
4 Opisuje rolę Apache, PHP i MySQL. Odróżnia kod PHP od HTML i JavaScriptu.
5 Dobiera środowisko do zadania. Wskazuje, co musi działać przy oddaniu pracy: serwer, pliki we właściwym katalogu, podgląd w przeglądarce.
6 Korzysta ze świadomej listy kontrolnej (katalog, serwer, baza gdy potrzebna, test przez HTTP).

Lista „już umiem”