Decydujesz, które usługi możemy włączyć do analizy, personalizacji i wyświetlania treści zewnętrznych.
Na naszej stronie używamy plików cookie i podobnych technologii, aby personalizować treści, osadzać materiały zewnętrzne i lepiej rozumieć sposób korzystania z poszczególnych sekcji.
Niezbędne pliki cookie
Te wpisy zapewniają podstawowe funkcje, takie jak bezpieczeństwo, stabilność i obsługa formularzy.
Opcjonalne sekcje
AnalitykaMarketingPersonalizacjaMedia zewnętrzne
Dane mogą być przetwarzane za twoją zgodą lub na podstawie prawnie uzasadnionych interesów. W ustawieniach plików cookie możesz odrzucić każdą opcjonalną kategorię lub wyrazić na nią zgodę.
Niektóre usługi przetwarzają dane osobowe w państwach trzecich. Wyrażając zgodę, akceptujesz również przekazywanie tych danych. Więcej informacji znajdziesz w naszej polityce prywatności.
Możesz później w każdej chwili wrócić do swojego wyboru i go zmienić. · 1.0.2
Konfiguracja stosu LAMP na serwerze Linux – uruchamianie klasycznych aplikacji PHP
Dowiedz się, jak sprawnie skonfigurować stos LAMP do hostowania dynamicznych witryn PHP na serwerze Linux VPS → Czytaj więcej
10 listopada 20266 min czytania1 Wyświetlenia0 pomocne
Wprowadzenie
Stos LAMP to popularny zestaw oprogramowania open source, którego składniki konfiguruje się razem, aby łatwo hostować dynamiczne witryny — ze szczególnym uwzględnieniem witryn i aplikacji PHP. Akronim oznacza: Linux jako system operacyjny, Apache jako serwer WWW, MySQL jako bazę danych i PHP do przetwarzania. W tym poradniku pokażemy, jak skonfigurować stos LAMP na serwerze Linux VPS, wraz ze szczegółowymi instrukcjami krok po kroku i przykładową witryną z listą zadań.
FAQ
Często zadawane pytania
Linux jako system operacyjny, Apache jako serwer WWW, MySQL jako baza danych i PHP do przetwarzania — popularne połączenie do hostowania dynamicznych witryn PHP.
W stosie LAMP serwerem WWW jest Apache, a w LEMP — Nginx (Engine x). Pozostałe składniki — Linux, MySQL i PHP — są takie same.
Użyj polecenia sudo apt install apache2. Następnie upewnij się, że port 80 (HTTP) jest otwarty w zaporze.
Ubuntu. W Debianie polecenia są identyczne, a w innych dystrybucjach podobne, choć ich składnia może się nieco różnić.
Opinia
Czy ten artykuł był pomocny?
Twoja opinia pomaga nam lepiej ustalać priorytety i aktualizować treści.
0 od 0 Osoby oceniające uznały ten artykuł za pomocny.
Indywidualna pomoc
Instrukcja nie wystarcza?
Nasz zespół wsparcia ZAP zna twój produkt — opisz krótko problem, a pomożemy ci osobiście.
Zappy zna tę instrukcję i odpowie ci bezpośrednio na czacie.
Nawigacja
VPS
Przygotowanie
Najpierw połącz się z serwerem przez SSH. Jeśli nie wiesz, jak to zrobić, zapoznaj się z naszym poradnikiem Pierwsze logowanie (SSH).
W tym poradniku korzystamy z Ubuntu jako dystrybucji Linuksa. Polecenia są identyczne w Debianie i podobne w innych dystrybucjach, ale ich składnia może się nieco różnić. Upewnij się, że system operacyjny jest zainstalowany i że połączono się z serwerem przez SSH.
Jak zawsze, przed instalacją zaktualizuj wszystkie pakiety za pomocą następujących poleceń:
Gratulacje! Stos LAMP został pomyślnie zainstalowany i skonfigurowany. W kolejnym kroku zdecydowanie zalecamy skonfigurowanie domeny i certyfikatu SSL, aby zapewnić bezpieczny dostęp do witryny. Zapoznaj się z naszym poradnikiem Certbot, który koncentruje się na wtyczce Apache, i wykonaj interaktywną konfigurację, aby szybko uzyskać certyfikat dla swojej domeny.
W razie pytań lub problemów nasz zespół wsparcia służy pomocą każdego dnia! 🙂
Hosting serwerów od 2,49 € / miesiąc, natychmiastowa dostępność, ochrona DDoS w cenie.
Instalację można podzielić na poszczególne główne składniki stosu LAMP: najpierw serwer WWW Apache, następnie bazę danych MySQL, a na końcu PHP. Podczas instalacji skonfigurujemy testową witrynę napisaną w PHP, która będzie łączyć się z bazą danych MySQL. Każde żądanie internetowe będzie następnie przetwarzane i obsługiwane przez Apache.
Konfiguracja Apache
Apache to serwer WWW, który przetwarza przychodzące żądania internetowe i wysyła odpowiedzi. Zainstaluj go za pomocą następującego polecenia:
Code
sudo apt install apache2
Po instalacji upewnij się, że skonfigurowano odpowiednie reguły zapory, aby serwer WWW był dostępny z internetu. W tym przykładzie używamy zapory UFW, ponieważ Apache ma w niej zarejestrowaną aplikację.
Jeśli korzystasz z innej zapory, upewnij się, że port 80 (HTTP) jest otwarty. Więcej informacji na temat zapór w Linuksie znajdziesz w naszym poradniku Zarządzanie zaporą.
Włącz zaporę UFW i utwórz regułę dla SSH:
Code
# Regel für SSH erstellen
sudo ufw allow OpenSSH
# UFW Firewall aktivieren
sudo ufw enable
Uwaga
Upewnij się, że w zaporze UFW masz regułę SSH! Bez niej po włączeniu zapory nie będzie można ponownie połączyć się przez SSH, jeśli utracisz bieżącą sesję!
Teraz utwórz regułę dla Apache i sprawdź reguły:
Code
# Regel für Apache erstellen
sudo ufw allow in "Apache Full"
# UFW Firewall Status prüfen
sudo ufw status
Wskazówka
Polecenie ufw app list wyświetla dostępne profile. Apache Full oznacza, że otwarte zostaną zarówno port HTTP (80), jak i HTTPS (443).
Powinny być widoczne wpisy Apache i Apache (v6) ze statusem ALLOW, co potwierdza prawidłową konfigurację zapory. Powinny być również widoczne inne reguły, na przykład ta dla SSH.
Po otwarciu portów dla Apache możesz sprawdzić, czy działa poprawnie. Wpisz w przeglądarce adres IP serwera:
http://[deine_ip_adresse]
Jeśli wszystko działa, powinna wyświetlić się domyślna strona powitalna. Jeśli nie, sprawdź status za pomocą polecenia: systemctl status apache2
Konfiguracja MySQL
Teraz zainstaluj MySQL, który będzie służyć jako baza danych do relacyjnego przechowywania danych. Zainstaluj go poleceniem:
Code
sudo apt install mysql-server
Po instalacji zalecamy uruchomienie skryptu zabezpieczającego serwer MySQL. Jest to opcjonalne, ale zdecydowanie zalecane. Uruchom go poleceniem:
Code
sudo mysql_secure_installation
Skrypt przeprowadzi Cię interaktywnie przez konfigurację. Najpierw pojawi się pytanie o weryfikację haseł. Zalecamy wybranie Y, aby zezwalać tylko na bezpieczne hasła, a następnie wybranie poziomu MEDIUM (1) lub STRONG (2).
Następnie pojawi się pytanie, czy usunąć anonimowego użytkownika i wyłączyć zdalne logowanie jako root. Zalecamy potwierdzenie obu opcji, wybierając Y, aby zwiększyć bezpieczeństwo.
Na koniec pojawi się pytanie, czy usunąć testową bazę danych i ponownie załadować tabele uprawnień. Również tutaj zalecamy wybranie Y.
Sprawdź, czy MySQL działa, logując się do niego:
Code
sudo mysql -u root
Jeśli zobaczysz komunikat powitalny, wszystko przebiegło pomyślnie. Wpisz quit, aby zamknąć konsolę MySQL.
Konfiguracja PHP
Ostatnim składnikiem stosu LAMP jest PHP. Instalacja jest prosta:
Code
sudo apt install php libapache2-mod-php php-mysql
Sprawdź instalację poleceniem:
Code
php -v
Jeśli wyświetli się numer wersji, PHP działa poprawnie.
Wskazówka
Rozszerzenia PHP
W niektórych przypadkach możesz potrzebować dodatkowych rozszerzeń PHP. Listę dostępnych rozszerzeń wyświetlisz poleceniem:
Code
apt search php- | less
Do przewijania używaj klawiszy strzałek, a do zakończenia — Q. Aby zainstalować rozszerzenie:
Code
sudo apt install [php_extension] [...]
Możesz zainstalować kilka rozszerzeń jednocześnie, oddzielając je spacjami.
Zalecamy zmianę kolejności indeksów katalogu, tak aby index.php był ładowany przed .html. Otwórz plik:
Zapisz plik, naciskając CTRL + X, potwierdź wyborem Y i naciśnij ENTER. Uruchom ponownie Apache:
Code
sudo systemctl restart apache2
Tworzenie testowej witryny
Po zainstalowaniu wszystkich składników stosu LAMP utworzymy testową witrynę, aby pokazać, jak współpracują ze sobą. Jest to opcjonalne, ale pomoże Ci zrozumieć, jak tworzyć własne witryny.
Utworzymy niewielką listę zadań w PHP, która pobiera i wyświetla wpisy z bazy danych MySQL. Jako przykładowej domeny użyjemy zapdocs.example.com. Musisz utworzyć dla domeny rekord DNS typu A, który będzie wskazywać na adres IP serwera. Pomoc znajdziesz w naszym poradniku Rekordy domeny.
Informacje
Możesz również pominąć domenę i zastąpić [your_domain] dowolną nazwą. Wtedy połączysz się z witryną za pomocą adresu IP. W takim przypadku usuń jednak wiersz ServerName z pliku wirtualnego hosta.
Konfiguracja Apache
Witryny zazwyczaj znajdują się w katalogu /var/www. Domyślnie znajduje się tam katalog html ze stroną domyślną. W przypadku wielu witryn zalecamy utworzenie osobnego katalogu dla każdej domeny.
Utwórz katalog dla swojej domeny:
Code
sudo mkdir /var/www/[your_domain]
Utwórz nowy plik konfiguracyjny wirtualnego hosta:
Zapisz plik i zamknij edytor, naciskając CTRL + X, wybierając Y i naciskając ENTER. Sprawdź składnię:
Code
sudo apache2ctl configtest
Włącz nowy wirtualny host:
Code
sudo a2ensite [your_domain]
Informacje
Bez domeny
Jeśli nie używasz domeny, usuń lub zakomentuj wiersz ServerName (dodając #) i wyłącz domyślny host:
Code
sudo a2dissite 000-default
Uruchom ponownie Apache:
Code
sudo systemctl restart apache2
Tworzenie witryny
Katalog jest obecnie pusty, więc utworzymy teraz witrynę z listą zadań.
Przygotowanie bazy danych
Zaloguj się do MySQL:
Code
sudo mysql -u root
Utwórz nową bazę danych i tabelę:
Code
# Datenbank erstellen
CREATE DATABASE todowebsite;
# Datenbank auswählen
USE todowebsite;
# Tabelle erstellen
CREATE TABLE todoitems (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
is_completed BOOLEAN DEFAULT FALSE,
creation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Dodaj kilka przykładowych wpisów:
Code
INSERT INTO todoitems (name, is_completed) VALUES ('Create ZAP-Docs Guide', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Buy a ZAP-Hosting Server', 1);
INSERT INTO todoitems (name, is_completed) VALUES ('Join ZAP-Hosting Discord', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Have a great day!', 0);
Utwórz osobnego użytkownika dla witryny:
Code
# Benutzer erstellen
# Ersetze [your_password] durch dein Passwort
CREATE USER todo@localhost IDENTIFIED BY '[your_password]';
# Rechte vergeben (als ein Befehl kopieren)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON todowebsite.*
TO todo@localhost;
# Rechte neu laden
FLUSH PRIVILEGES;
Wpisz quit, aby zamknąć konsolę MySQL.
Pliki witryny PHP
Utwórz plik PHP dla strony z listą zadań:
Code
sudo nano /var/www/[your_domain]/index.php
Wklej poniższy kod. Nawiązuje on połączenie z bazą danych i wyświetla wpisy z listy zadań.
Ważne
Zastąp [your_password] hasłem ustawionym dla użytkownika todo.
Code
<?php
// MySQL-Verbindung vorbereiten
$servername = "localhost";
$username = "todo";
$password = "[your_password]";
$dbname = "todowebsite";
// Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen, bei Fehler abbrechen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um Einträge abzurufen
$sql = "SELECT id, name, is_completed, creation_date FROM todoitems ORDER BY creation_date DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do Liste</title>
</head>
<body>
<h1>Coole To-Do Liste :D</h1>
<p>Für unseren coolen ZAP-Hosting Guide: <a href="https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack">https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack</a></p>
<ul>
<?php
// Prüfen, ob Ergebnisse vorhanden sind
if ($result->num_rows > 0) {
// Durch alle Einträge iterieren
foreach ($result as $entry) {
echo "<li>";
// Name anzeigen, htmlspecialchars schützt vor XSS
echo htmlspecialchars($entry["name"]);
// Status anzeigen
if ($entry["is_completed"]) {
echo " <strong>(Erledigt)</strong>";
} else {
echo " <strong>(Offen)</strong>";
}
// Erstellungsdatum anzeigen
echo " - Erstellungsdatum: " . htmlspecialchars($entry['creation_date']);
echo "</li>";
}
} else {
// Falls keine Einträge vorhanden sind
echo "<li>Keine To-Do-Einträge gefunden.</li>";
}
?>
</ul>
</body>
</html>
<?php
// Verbindung schließen
$conn->close();
?>
Zapisz plik i zamknij edytor, naciskając CTRL + X, wybierając Y i naciskając ENTER.
Testowanie witryny
Udało Ci się skonfigurować testową witrynę z listą zadań, która korzysta ze wszystkich składników stosu LAMP!
Otwórz teraz domenę (HTTP/port 80) skonfigurowaną w wirtualnym hoście, np. zapdocs.example.com. Wynik powinien wyglądać następująco: