Stos LAMP jest niekwestionowanym pra-dziadem open-source hostingu stron internetowych. Przez dekady był najbardziej niezawodny, dokładnie udokumentowany i szeroko rozpowszechniony fundament dla hostowania dynamicznych aplikacji jak WordPress, Drupal i Joomla.
LAMP oznacza cztery komponenty:
- Linux: System operacyjny (Ubuntu lub Debian).
- Apache: Niesamowicie wytrzymały, wysoce konfigurowalny serwer WWW.
- MySQL: Najpopularniejszy system zarządzania relacyjnymi bazami danych.
- PHP: Język skryptowy po stronie serwera obsługujący logikę backendową.
W porównaniu do nowszych stosów LEMP (Nginx), LAMP pozostaje uniwersalnie uwielbiany ponieważ Apache przetwarza PHP dynamicznie natywnie (nie potrzebu konfigurowania zewnętrznych gniazd FPM) i opiera się na wysoko elastycznych plikach .htaccess dla łatwej, katalogowej konfiguracji zastępczej.
Krok 1: Zainstaluj Apache (Serwer WWW)
Przed instalacją jakiegokolwiek oprogramowania, zawsze aktualizuj swoje lokalne indeksy pakietów aby pobierać najnowsze poprawki bezpieczeństwa.
sudo apt update
sudo apt upgrade -y
Teraz zainstaluj serwer WWW Apache (pakiet nosi się apache2 na systemach Debian/Ubuntu):

sudo apt install apache2 -y
Jeśli używasz zapory ufw (co powinieneś robić zgodnie z naszym Przewodnikiem Konfiguracji Zapory UFW), musisz zezwolić na ruch Apache aby mógł przechodzić. Chcesz otworzyć zarówno HTTP (Port 80) jak i HTTPS (Port 443).
sudo ufw allow 'Apache Full'
Aby zweryfikować że twój serwer WWW żyje, wpisz adres IP swojego serwera do ulubionej przeglądarki (http://your_server_ip). Powinieneś zobaczyć domyślną stronę "Apache2 Ubuntu Default Page".
Krok 2: Zainstaluj MySQL (Baza danych)
Twój serwer może teraz serwować statyczne HTML, ale aby przechowywać dane aplikacji (jak konta użytkowników, posty na blogu i ustawienia), potrzebujesz bazy danych.
Zainstaluj oficjalny serwer MySQL:

sudo apt install mysql-server -y
Gdy instalacja się zakończy, baza danych działa ale jej domyślna konfiguracja jest niebezpiecznie otwarta. Musisz ją zablokować używając interaktywnego skryptu bezpieczeństwa:

sudo mysql_secure_installation
Zostaniesz poproszony o kilka pytań aby skonfigurować profil bezpieczeństwa:
- Wtyczka Validate Password: Wpisz
yjeśli chcesz aby MySQL aktywnie blokował słabe hasła, lubnaby pominąć. - Usuń użytkowników anonimowych: Wpisz
y. - Zabroń logowania root zdalnie: Wpisz
y(root powinien mieć dostęp do bazy danych tylko z wewnątrz serwera). - Usuń bazę danych testową: Wpisz
y. - Przeładuj tabele uprawnień: Wpisz
y.
MySQL jest teraz bezpieczny.
Krok 3: Zainstaluj PHP
Masz serwer WWW i bazę danych, ale nie mogą się jeszcze ze sobą komunikować ani przetwarzać kod dynamiczny. Potrzebujesz PHP.
Dla Apache, instalacja PHP wymaga trzech głównych pakietów: podstawowy pakiet php, rozszerzenie php-mysql pozwalające skryptom PHP rozmawiać z twoją bazą danych, i kluczowy pakiet libapache2-mod-php który magicznie wiąże przetwarzanie PHP bezpośrednio w runtime Apache.

sudo apt install php libapache2-mod-php php-mysql -y
Krok 4: Skonfiguruj priorytetów indeksu Apache
Gdy użytkownik odwiedza katalog na twojej stronie (jak twojstrona.com/blog/), Apache automatycznie szuka domyślnego pliku "index" do serwowania. Domyślnie szuka index.html jako pierwszy, a jeśli go nie znajdzie, ostatecznie szuka index.php.
Dla aplikacji dynamicznych, chcemy aby Apache priorytetyzowało index.php.
Otwórz plik konfiguracyjny modułu dir:

sudo nano /etc/apache2/mods-enabled/dir.conf
Otworzy się on wygląda tak:
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Przesuń ciąg index.php na początek listy bezpośrednio po DirectoryIndex, aby wyglądało tak:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Zapisz i wyjdź.
Za każdym razem gdy modyfikujesz moduły Apache, musisz zrestartować serwer WWW aby zmiany weszły w życie:
sudo systemctl restart apache2
Krok 5: Przetestuj stos LAMP
Twoje środowisko jest kompletne! Jednakże złotą zasadą administracji systemowej jest weryfikowanie swojej pracy. Napiszemy mały skrypt PHP aby udowodnić że Apache może przetwarzać kod dynamiczny.
Utwórz nowy plik w domyślnym katalogu głównym WWW Apache:
sudo nano /var/www/html/info.php
Wklej standardową funkcję inicjalizacyjną:
<?php
phpinfo();
?>
Zapisz plik. Otwórz przeglądarkę i nawiguj do http://your_server_ip/info.php.

sudo systemctl status apache2
Jeśli instalacja się powiodła, zostaniesz powitany ogromną, szczegółową tabelę opisującą twoją wersję PHP, zainstalowane moduły, limity pamięci i ustawienia integracji Apache.
Krytyczne ostrzeżenie bezpieczeństwa: Strona
info.phpzawiera obszerną mapę twojej wewnętrznej architektury serwera. Pozostawienie tego pliku publicznego jest masowym ryzykiem bezpieczeństwa. Gdy potwierdzisz że stos działa, usuń plik natychmiast:
sudo rm /var/www/html/info.php
Gratulacje! Pomyślnie zbudowałeś sprawdzony, przetestowany i solidny fundament do hostowania dynamicznych aplikacji na Linuksie. Czy masz ciężki sklep e-commerce, forum czy blog o dużym ruchu gotowy do uruchomienia? Połącz swój nowy stos LAMP z jednym z naszych środowisk Premium VPS lub wysoko efektywnych kosztowo Budget VPS, zainstaluj bezpłatny SSL przez Certbot i zbuduj ostateczne doświadczenie WWW.