Du bestämmer vilka tjänster vi får aktivera för analys, personalisering och externt innehåll.
Vi använder cookies och liknande tekniker på vår webbplats för att anpassa innehåll, bädda in externa medier och bättre förstå hur olika delar används.
Nödvändiga cookies
Dessa poster säkerställer grundläggande funktioner som säkerhet, stabilitet och formulärhantering.
Dina uppgifter kan behandlas med ditt samtycke eller med stöd av berättigade intressen. I cookieinställningarna kan du neka eller uttryckligen tillåta varje valfri kategori.
Vissa tjänster behandlar personuppgifter i länder utanför EU/EES. Genom att samtycka godkänner du även denna överföring. Mer information finns i vår integritetspolicy.
Du kan när som helst öppna och ändra ditt val senare. · 1.0.2
Konfigurera LAMP-stack på Linux-server – kör klassiska PHP-program
Lär dig hur du effektivt konfigurerar en LAMP-stack för att hosta dynamiska PHP-webbplatser på en Linux-VPS → Läs mer
10 november 20266 min läsning1 Visningar0 hjälpsam
Introduktion
LAMP-stacken är en populär samling programvara med öppen källkod som konfigureras tillsammans för att enkelt kunna hosta dynamiska webbplatser – med särskilt fokus på PHP-webbplatser och appar. Förkortningen står för: Linux som operativsystem, Apache som webbserver, MySQL som databas och slutligen PHP för bearbetning. I den här guiden visar vi hur du konfigurerar en LAMP-stack på en Linux-VPS, med en detaljerad steg-för-steg-förklaring och ett exempel på en webbplats med en att göra-lista.
FAQ
Vanliga frågor
Linux som operativsystem, Apache som webbserver, MySQL som databas och PHP för bearbetning – en populär kombination för att hosta dynamiska PHP-webbplatser.
LAMP använder Apache som webbserver, medan LEMP använder Nginx (Engine X). Resten av kombinationen (Linux, MySQL och PHP) är densamma.
Kör kommandot sudo apt install apache2. Kontrollera sedan att port 80 (HTTP) är öppen i brandväggen.
Ubuntu. Kommandona är identiska på Debian och liknar dem på andra distributioner, men syntaxen kan skilja sig något.
Feedback
Var den här artikeln till hjälp?
Din feedback hjälper oss att prioritera och förbättra innehåll.
0 av 0 Personer som lämnat feedback tyckte att den här artikeln var hjälpsam.
Personlig hjälp
Räcker inte guiden till?
Vår ZAP-support känner till din produkt – beskriv kort ditt ärende så hjälper vi dig personligen.
Navigation
VPS
Förberedelser
Anslut först till servern via SSH. Om du inte vet hur du gör kan du läsa vår guide om första anslutningen (SSH).
I den här guiden använder vi Ubuntu som Linux-distribution. Kommandona är identiska på Debian och liknar dem på andra distributioner, men syntaxen kan skilja sig något. Se till att ett operativsystem är installerat och att du är ansluten via SSH.
Som alltid bör du uppdatera alla paket före installationen med följande kommando:
Installationen kan delas upp i LAMP-stackens enskilda huvudkomponenter: först Apache-webbservern, sedan MySQL-databasen och till sist PHP. Under installationen konfigurerar vi en testwebbplats skriven i PHP som ansluter till MySQL-databasen. Varje webbförfrågan hanteras och levereras sedan via Apache.
Konfigurera Apache
Apache är webbservern som hanterar inkommande webbförfrågningar och skickar svar. Installera den med följande kommando:
Code
sudo apt install apache2
Efter installationen bör du se till att rätt brandväggsregler är konfigurerade så att webbservern kan nås från internet. I det här exemplet använder vi UFW-brandväggen, eftersom Apache har en registrerad applikation i den.
Om du använder en annan brandvägg ska du se till att port 80 (HTTP) är öppen. Läs mer om brandväggar i Linux i vår guide Hantera brandväggen.
Aktivera UFW-brandväggen och skapa en regel för SSH:
Code
# Regel för SSH skapa
sudo ufw allow OpenSSH
# Aktivera UFW-brandväggen
sudo ufw enable
Varning
Se till att du har en SSH-regel i UFW-brandväggen! Utan den kan du inte längre ansluta via SSH när brandväggen har aktiverats, om du förlorar den aktuella sessionen!
Skapa nu en regel för Apache och kontrollera reglerna:
Code
# Skapa en regel för Apache
sudo ufw allow in "Apache Full"
# Kontrollera UFW-brandväggens status
sudo ufw status
Tips
Med ufw app list kan du visa vilka profiler som är tillgängliga. Apache Full innebär att både HTTP (port 80) och HTTPS (port 443) är öppna.
Du bör se Apache och Apache (v6) med statusen ALLOW, vilket bekräftar att brandväggen är korrekt konfigurerad. Andra regler, till exempel den för SSH, bör också visas.
När brandväggen är öppen för Apache kan du testa om Apache fungerar. Öppna serverns IP-adress i webbläsaren: http://[deine_ip_adresse]
Om allt fungerar bör du se en standardvälkomstsida. Om inte kan du kontrollera statusen med: systemctl status apache2
Konfigurera MySQL
Nu installerar du MySQL, som används som databas för att lagra data relationellt. Installera det med:
Code
sudo apt install mysql-server
Efter installationen rekommenderar vi att du kör säkerhetsskriptet för att skydda din MySQL-server. Det är valfritt, men rekommenderas starkt. Starta det med:
Code
sudo mysql_secure_installation
Skriptet vägleder dig genom konfigurationen. Först får du frågan om lösenordsvalidering. Vi rekommenderar att du väljer Y för att endast tillåta säkra lösenord och sedan väljer MEDIUM (1) eller STRONG (2).
Därefter får du frågan om den anonyma användaren ska tas bort och om root-inloggning utifrån ska inaktiveras. Vi rekommenderar att du svarar Y på båda frågorna för att öka säkerheten.
Till sist får du frågan om testdatabasen ska tas bort och om behörighetstabellerna ska läsas in på nytt. Även här rekommenderar vi Y.
Kontrollera att MySQL körs genom att logga in:
Code
sudo mysql -u root
Om du ser ett välkomstmeddelande har allt fungerat. Avsluta MySQL-konsolen med quit.
Konfigurera PHP
Den sista LAMP-komponenten är PHP. Installationen är enkel:
Code
sudo apt install php libapache2-mod-php php-mysql
Kontrollera installationen med:
Code
php -v
Om ett versionsnummer visas fungerar PHP som det ska.
Tips
PHP-tillägg
För vissa användningsområden kan du behöva ytterligare PHP-tillägg. Du hittar en lista med:
Code
apt search php- | less
Bläddra med piltangenterna och avsluta med Q. Så här installerar du ett tillägg:
Code
sudo apt install [php_extension] [...]
Du kan installera flera tillägg samtidigt genom att separera dem med mellanslag.
Vi rekommenderar att du ändrar ordningen för katalogindex så att index.php läses in före .html. Öppna filen:
Spara med CTRL + X, bekräfta med Y och tryck på ENTER. Starta om Apache:
Code
sudo systemctl restart apache2
Skapa en testwebbplats
När alla LAMP-komponenter har installerats skapar vi en testwebbplats för att visa hur allt samverkar. Det är valfritt, men kan hjälpa dig att förstå hur du skapar egna webbplatser.
Vi skapar en liten att göra-lista i PHP som hämtar och visar poster från en MySQL-databas. Som exempeldomän använder vi zapdocs.example.com. Du måste skapa en DNS-post av typen A för domänen som pekar på serverns IP-adress. Du hittar hjälp i vår guide om domänposter.
Info
Du kan också arbeta utan en domän och ersätta [your_domain] med valfritt namn. Då ansluter du via IP-adressen. I så fall bör du dock ta bort raden ServerName från den virtuella värdfilen.
Konfigurera Apache
Webbplatser finns vanligtvis i katalogen /var/www. Som standard finns det en katalog som heter html där med en standardsida. Om du har flera webbplatser rekommenderar vi att du skapar en separat katalog för varje domän.
Skapa en katalog för domänen:
Code
sudo mkdir /var/www/[your_domain]
Skapa en ny konfigurationsfil för den virtuella värden:
Spara och avsluta med CTRL + X, Y och ENTER. Kontrollera syntaxen:
Code
sudo apache2ctl configtest
Aktivera den nya virtuella värden:
Code
sudo a2ensite [your_domain]
Info
Använder ingen domän
Om du inte använder någon domän tar du bort eller kommenterar ut raden ServerName (med #) och inaktiverar standardvärden:
Code
sudo a2dissite 000-default
Starta om Apache:
Code
sudo systemctl restart apache2
Skapa webbplatsen
Katalogen är tom för tillfället, så nu skapar vi att göra-webbplatsen.
Förbereda databasen
Logga in på MySQL:
Code
sudo mysql -u root
Skapa en ny databas och tabell:
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
);
Lägg till några exempelposter:
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);
Skapa en separat användare för webbplatsen:
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;
Avsluta MySQL-konsolen med quit.
PHP-filer för webbplatsen
Skapa PHP-filen för att göra-sidan:
Code
sudo nano /var/www/[your_domain]/index.php
Klistra in följande kod. Den ansluter till databasen och visar att göra-posterna.
Viktigt
Ersätt [your_password] med lösenordet du angav för användaren 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();
?>
Spara och avsluta med CTRL + X, Y och ENTER.
Testa webbplatsen
Du har nu konfigurerat en testwebbplats med en att göra-lista som använder alla LAMP-komponenter!
Gå nu till domänen (HTTP/port 80) som du angav för den virtuella värden, till exempel zapdocs.example.com. Resultatet bör se ut så här:
Avslutning
Grattis, du har installerat och konfigurerat LAMP-stacken! Som nästa steg rekommenderar vi starkt att du konfigurerar en domän och ett SSL-certifikat, så att din webbplats är säker att besöka. Läs vår Certbot-guide med fokus på Apache-pluginen och följ den interaktiva konfigurationen för att snabbt skaffa ett certifikat för din domän.
Vårt supportteam finns här för dig varje dag om du har frågor eller stöter på problem! 🙂
Serverhosting från 2,49 € / månad, online direkt, DDoS-skydd ingår.