Kursy i Poradniki IT - Adrian Kowalski
Kurs Programowania PHP dla Początkujących
O lekcji

Serwer Apache jest niezwykle elastyczny i pozwala na wiele różnych konfiguracji, które mogą wpływać na sposób działania aplikacji PHP. W tym rozdziale omówię kilka kluczowych aspektów konfiguracji serwera Apache, takich jak zmiana portu, ładowanie modułów, konfiguracja virtual hosts oraz zmiany w ustawieniach PHP. Zawiera również fragmenty kodu w odpowiednich blokach.

1. Zmiana portu serwera Apache

Domyślnie serwer Apache nasłuchuje na porcie 80 – jest to domyślny port dla HTTP (443 to domyślny port dla HTTPS), ale w przypadku, gdy ten port jest już zajęty przez inny serwis, możemy zmienić port, na którym będzie działał Apache. W tym celu edytujemy plik konfiguracyjny httpd.conf. Otwórz plik httpd.conf (np. w XAMPP znajduje się on w folderze apache/conf). Wyszukaj linię:

Listen 80

Zmieniając wartość 80 na inny numer portu (np. 8080), uzyskamy dostęp do Apache na nowym porcie:

Listen 8080

Po zapisaniu pliku konfiguracyjnego i restarcie Apache, możemy przejść do przeglądarki i wpisać http://localhost:8080, aby sprawdzić, czy serwer działa poprawnie.

2. Ładowanie modułów w Apache

Apache działa w sposób modułowy, co oznacza, że możemy załadować dodatkowe moduły, które rozszerzają jego funkcjonalność. Ważnym modułem dla PHP jest php_module, który umożliwia obsługę skryptów PHP. Aby sprawdzić lub dodać załadowanie tego modułu, otwieramy plik httpd.conf i upewniamy się, że znajduje się tam linia:

LoadModule php7_module "c:/xampp/php/php7apache2_4.dll"

Gdy zainstalowaliśmy pakiet XAMPP z php w wersji 8, a nie 7, to odpowiednie oznaczenia powinny być inne.

W przypadku, gdy nie jest ona obecna lub jest zakomentowana (zaczyna się od #), należy ją odkomentować lub dodać w odpowiednim miejscu. Jeśli chcemy włączyć inne moduły, na przykład mod_rewrite, dodajemy lub odkomentowujemy następujący wpis:

LoadModule rewrite_module modules/mod_rewrite.so

Po zapisaniu pliku konfiguracyjnego należy zrestartować Apache.

3. Konfiguracja Virtual Hosts

Kiedy pracujemy nad kilkoma projektami na tym samym serwerze, warto skonfigurować virtual hosts, które pozwalają na przypisanie różnych domen lub subdomen do różnych katalogów na serwerze. Aby skonfigurować virtual hosts, otwieramy plik httpd-vhosts.conf, który znajduje się w katalogu konfiguracyjnym Apache (np. apache/conf/extra/httpd-vhosts.conf w XAMPP). Przykład konfiguracji dwóch virtual hosts:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/projekt1"
    ServerName projekt1.local
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/projekt2"
    ServerName projekt2.local
</VirtualHost>

Następnie musimy edytować plik hosts, który znajduje się w systemie operacyjnym, aby przypisać odpowiednie domeny do lokalnych adresów IP:

127.0.0.1 projekt1.local
127.0.0.1 projekt2.local

Po zapisaniu tych zmian w pliku hosts, uruchamiamy ponownie serwer Apache. Teraz, wpisując w przeglądarkę http://projekt1.local lub http://projekt2.local, Apache będzie wiedział, który katalog obsługiwać.

4. Zmiana ustawień PHP w pliku php.ini

Plik php.ini odpowiada za ustawienia PHP. Aby dostosować PHP do naszych potrzeb, możemy zmieniać ustawienia takie jak limit pamięci, maksymalny czas wykonania skryptów czy wyświetlanie błędów. Plik php.ini znajduje się zwykle w katalogu instalacyjnym PHP (np. xampp/php/php.ini w XAMPP). Oto kilka przykładów ustawień, które możemy zmienić:

  • Zmiana limitu pamięci: Jeśli napotykasz problemy związane z pamięcią w PHP, możesz zwiększyć wartość memory_limit. Aby to zrobić, znajdź linię:
    memory_limit = 128M

    i zmień ją na wyższą wartość, np.:

    memory_limit = 256M
  • Zmiana limitu czasu wykonania skryptu: Jeśli Twoje skrypty PHP potrzebują więcej czasu na wykonanie, zmień wartość max_execution_time w pliku php.ini. Przykład:
    max_execution_time = 300

    Dzięki tej zmianie PHP będzie czekać do 300 sekund (5 minut) na zakończenie skryptu.

  • Włączanie wyświetlania błędów: Aby łatwiej debugować aplikację PHP, możesz włączyć wyświetlanie błędów, ustawiając display_errors na On:
    display_errors = On

Po dokonaniu zmian w pliku php.ini, pamiętaj, aby zrestartować Apache, aby nowe ustawienia zaczęły obowiązywać.

5. Bezpieczeństwo serwera Apache

Ważnym aspektem konfiguracji Apache jest zapewnienie odpowiedniego poziomu bezpieczeństwa. Przykładem może być blokowanie dostępu do niektórych katalogów, które nie powinny być dostępne publicznie (np. katalogi z plikami konfiguracyjnymi). Aby zablokować dostęp do określonych katalogów, w pliku httpd.conf możemy dodać dyrektywę:

<Directory "C:/xampp/apache">
    Deny from all
</Directory>

To blokuje dostęp do katalogu Apache. Możemy w ten sposób zabezpieczyć katalogi, które zawierają wrażliwe dane lub pliki konfiguracyjne.