PHPDevs

Projekt obiektowy z Composerem i Twigiem? Czytaj!

Wstęp do PHP > Lekcja 7

Konfiguracja PHP i serwera www

Aktualizacja 30.11.2017

Podobnie, jak w przypadku poprzedniej lekcji, zalecam bazowanie na ostatniej stabilnej wersji PHP, czyli 7.2. Jeśli takową właśnie zainstalowałeś w poprzednim kroku, należy o tym pamiętać podczas wykonywania czynności z tej lekcji.

Mamy już zainstalowany interpreter, jednak nasz serwer www nie obsługuje obecnie plików PHP - nie wie po prostu co ma z nimi zrobić. Musimy doinstalować specjalny moduł, który następnie “podepniemy” do serwera www.

Teraz edytujemy plik konfiguracyjny Nginxa. Nasz serwer może mieć wiele tzw. virtual hostów. Dzięki nim, po wejściu na każdą domenę, wyświetla się odpowiednia strona z odpowiednią konfiguracją. Co więcej możemy sobie na komputerze stworzyć "własne domeny" (w pliku /etc/hosts), aby móc wygodniej testować określone aplikacje. Tym jednak teraz nie będziemy się zajmowali, chcemy aby nasza strona działała po wejściu na adres localhost. Edytujmy domyślny plik z konfiguracją Nginxa: /etc/nginx/sites-available/default (potrzebujemy uprawnień roota, aby edytować pliki konfiguracyjne). Możesz zrobić to w dowolnym edytorze tekstu, nawet w trybie graficznym. Ja zrobię to w konsolowym nano: sudo nano /etc/nginx/sites-available/default. Po zmianach mój plik wygląda następująco:

Co zmieniłem? Dodałem index.php do tego, aby był automatycznie wyświetlany jako główny plik strony. Usunąłem też komentarze (znak #) w całej sekcji dotyczącej plików .php (takie właśnie rozszerzenie noszą pliki z kodem w języku PHP), ale zakomentowane powinny pozostać trzy środkowe linie (przyda nam się tylko linia z include i fastcgi_pass, pozostałe można nawet usunąć). W fastcgi_pass zmieniamy ścieżkę, tak aby prowadziła do naszej zainstalowanej wersji PHP.

Ciekawostka

Tutaj możemy zmienić jeszcze wiele innych rzeczy dotyczących serwera www. Dla przykładu możesz zmienić porty na których nasłuchiwał będzie serwer (listen), sprawdzić lub zmienić katalog, z którego wyświetlana będzie strona (root), czy zmienić domenę pod którą widoczna ma być dana strona (server_name), a to i tak tylko podstawowe opcje. Więcej informacji znajduje się w dokumentacji Nginxa.

Nie zapomnij zapisać pliku (w nano służy do tego CTRL+O, a wyjście z edytora to CTRL+X).

Powszechny problem

Bez znaczenia, czy plik konfiguracyjny edytujesz w trybie graficznym, czy konsoli, potrzebujesz do tego uprawnień roota (zakładając domyślne uprawnienia do tego pliku, czyli zapis tylko dla właściciela, którym jest konto root). Jeśli więc ujrzysz przy zapisie błąd: "Brak uprawnień" lub "Permission denied", oznacza to, że nie otworzyłeś pliku jako root (powyżej prezentowałem użycie nano z sudo).

Pozostaje nam już tylko ponownie załadować konfigurację Nginxa. Jeśli tego nie zrobimy, zmiany nie będą widoczne. Wpisujemy więc polecenie service nginx reload lub dedykowane: nginx -s reload, oczywiście znów potrzebujemy do tego uprawnień roota.

Po tej operacji w Nginxie będą już poprawnie obsługiwane pliki PHP.

Wyświetlanie błędów PHP

Na koniec proponuję wykonać jeszcze jedną bardzo istotną zmianę: włączyć wyświetlanie wszystkich błędów. Domyślnie opcja ta jest wyłączona, a to dlatego, że na serwerze produkcyjnym (tym, na którym docelowo będzie działać aplikacja) błędy nie powinny być widoczne. Po co zdradzać użytkownikowi szczegóły techniczne naszej aplikacji?

Jeśli jednak mamy środowisko testowe to chcielibyśmy wszystkie błędy widzieć. Dlatego też zmienimy globalnie ustawienie o nazwie display_errors. Głównym plikiem konfiguracyjnym jest php.ini i to tam należy go szukać. Jeśli znasz trochę systemy Linuxowe, to pewnie już domyślasz się, że znajduje się on w katalogu /etc/php (w katalogu /etc swoje konfiguracje przechowuje większość programów). Po wejściu do tej lokalizacji możesz jednak poczuć się lekko zdezorientowany, gdyż jest tam kilka plików php.ini w różnych podfolderach.

Każdy z tych folderów odpowiada za konfigurację interpretera używaną w innym miejscu:

W zależności z czego korzystamy, w odpowiednim folderze dokonujemy zmian. Ja edytuję więc plik /etc/php/7.1/fpm/php.ini, dodatkowo też wprowadzę te same zmiany w konfiguracji dla cli (żeby już było gdybym zechciał skorzystać z interpretera w konsoli).

Odszukujemy ustawienie display_errors i zmieniamy jego wartość z Off na On. To tyle, zapisujemy plik.

Aby jednak powyższa zmiana zaczęła działać, musimy (jak już się może domyślasz) wczytać od nowa konfigurację.

W pliku php.ini możemy zmienić wiele rzeczy, jednak teraz nie o tym. Wykonaliśmy tylko podstawowe kroki w celu przystosowania sobie środowiska deweloperskiego.

A Windows?

W przypadku gdy skorzystałeś z XAMPPa opcja display_errors powinna być domyślnie włączona. Plik konfiguracyjny php.ini możesz znaleźć w podfolderze php w katalogu instalacyjnym (np. C:\xampp\php\php.ini).

Poprzednia lekcja Następna lekcja

Udostępnij

  • Facebook
  • Twitter
  • Google+

Komentarze