Hvordan installere LAMP Stack på Debian 11/10/9


Den (14. august 2021) kunngjorde Debian-prosjektet tilgjengeligheten av den nye stabile versjonen (Debian 11) med kodenavnet Bullseye.

Med denne utgivelsen fikk den velkjente og mye brukte Debian 10 Buster status som gammel stabil, som angir det forrige stabile depotet. Som det alltid skjer med utgivelsen av en ny stabil versjon, inkluderer Bullseye hundrevis av nye pakker og oppdateringer til tusenvis av andre.

Siden Debian driver en stor prosentandel av nettservere over hele verden, vil vi i denne artikkelen forklare hvordan du installerer LAMP-stakken i Debian 11 og fungerer også på eldre Debian 10 og Debian 9 utgivelser.

Dette vil tillate systemadministratorer å sette opp splitter nye nettservere på toppen av Bullseye ved å bruke de siste oppdateringene til distribusjonens offisielle depoter. Det antas at du har installert Debian 11 minimal server på en bart metall, virtuell maskin eller VPS, eller har oppgradert fra Debian 10 til Debian 11.

Installerer LAMP i Debian

“M ” i LAMP står for MariaDB eller MySQL, databaseserveren for stabelen. Avhengig av ditt valg, kan du installere databaseserveren og de andre komponentene (Apache-webserveren og PHP) som følger.

Installer LAMP med MariaDB på Debian

apt update && apt install apache2 mariadb-server mariadb-client mariadb-common php php-mysqli

Installer LAMP med MySQL på Debian

apt update && apt install apache2 mysql-server mysql-client mysql-common php php-mysqli

Som en personlig preferanse vil jeg bruke MariaDB i resten av denne artikkelen.

Når installasjonen er fullført, la oss sørge for at alle tjenestene kjører. I så fall, følgende kommandoer.

systemctl is-active apache2
systemctl is-active mariadb

skal returnere aktiv for begge. Ellers starter du begge tjenestene manuelt:

systemctl start {apache2,mariadb}

Sikring av MariaDB i Debian

Til slutt, før vi fortsetter, la oss bruke mysql_secure_installation for å sette opp passordet for databaserotkontoen, fjerne anonyme brukere, forby rotpålogging eksternt og fjerne testdatabasen.

mysql_secure_installation

Tester LAMP på Debian

Til å begynne med skal vi opprette og fylle ut en prøvedatabase. Deretter vil vi bruke et grunnleggende PHP-skript for å hente et sett med poster fra databasen i JSON-format.

Til slutt vil vi bruke Firefoxs utviklerverktøy for å bekrefte versjonen av Apache som brukes. Selv om vi kunne finne ut denne samme informasjonen med.

apache2 -v

Server version: Apache/2.4.51 (Debian)
Server built:   2021-10-07T17:49:44

Grunnen til at vi bruker et skript er å sørge for at alle komponentene i stabelen fungerer som de skal når de er buntet sammen.

Opprette og fylle ut en database

La oss gå inn i MariaDB-ledeteksten med følgende kommando.

mysql -u root -p

og skriv inn passordet som ble valgt i forrige seksjon.

Nå vil vi opprette en database kalt LibraryDB som følger:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

og legg til to tabeller kalt AutorsTBL og BooksTBL:

MariaDB [(none)]> USE LibraryDB;
CREATE TABLE AuthorsTBL (
AuthorID INT NOT NULL AUTO_INCREMENT,
FullName VARCHAR(100) NOT NULL,
PRIMARY KEY(AuthorID)
);

MariaDB [(none)]> CREATE TABLE BooksTBL (
BookID INT NOT NULL AUTO_INCREMENT,
AuthorID INT NOT NULL,
ISBN VARCHAR(100) NOT NULL,
Title VARCHAR(100) NOT NULL,
Year VARCHAR(4),
PRIMARY KEY(BookID),
FOREIGN KEY(AuthorID) REFERENCES AuthorsTBL(AuthorID)
);

Av sikkerhetsgrunner vil vi opprette en spesiell konto for å få tilgang til databasen vår:

MariaDB [(none)]> CREATE USER 'librarian'@'localhost' IDENTIFIED BY 'Today123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON LibraryDB.* TO 'librarian'@'localhost';

Det siste trinnet består nå av å fylle ut tabellene med Forfattere og Bøker:

MariaDB [(none)]> INSERT INTO AuthorsTBL (FullName) VALUES ('Paulo Coelho'), ('Isabel Allende'), ('Jorge Luis Borges');
MariaDB [(none)]> INSERT INTO BooksTBL (AuthorID, ISBN, Title, Year) VALUES
(1, '9788576653721', 'El alquimista', '1988'),
(1, '9780061194740', 'El peregrino', '1987'),
(2, '9789500720380', 'La casa de los espiritus', '1982'),
(3, '9789875666481', 'El Aleph', '1945');

Testing av databaseforbindelse med PHP-skript

Følgende PHP-skript vil først koble til databasen og hente postene som samsvarer med spørringen. Hvis det oppstår en feil, vil en beskrivende melding vises for å gi oss et hint om hva som er galt.

Lagre følgende skript som booksandaauthors.php under /var/www/html:

<?php
	// Show PHP version
	echo "Current PHP version: " . phpversion() .  "\r\n";

	// Connect to database
	$connection = mysqli_connect("localhost","librarian","Today123","LibraryDB") or die("Error " . mysqli_error($connection));

	// SQL query
	$sql = "SELECT A.ISBN, A.Title,
        	A.Year, B.FullName
        	FROM BooksTBL A JOIN AuthorsTBL B
        	ON A.AuthorID = B.AuthorID;";
	$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));

	// Populate an array with the query results
	$libraryarray = array();
	while($row = mysqli_fetch_assoc($result))
	{
    	$libraryarray[] = $row;
	}

	// Convert to JSON
	echo json_encode($libraryarray);
?>

Endre eierskapet til www-data og legg til de riktige tillatelsene:

chown www-data:www-data /var/www/html/booksandauthors.php
chmod 600 /var/www/html/booksandauthors.php

Til slutt åpner du en nettleser og peker den til URL-en der skriptet ligger.

http://192.168.0.35/booksandauthors.php

Det er det! I denne artikkelen har vi forklart hvordan du installerer og tester LAMP-stakken på Debian 11. Hvis du har spørsmål eller kommentarer om denne artikkelen, ikke nøl med å gi oss beskjed ved å bruke skjemaet nedenfor.