Wéi installéiere de LAMP Stack op Debian 11/10/9


Den (14. August 2021) huet den Debian Projet d'Disponibilitéit vun der neier stabiler Versioun (Debian 11) mam Codenumm Bullseye ugekënnegt.

Mat dëser Verëffentlechung huet de bekannten a wäit benotzten Debian 10 Buster al-stabile Status kritt, wat de fréiere stabile Repository bezeechent. Wéi et ëmmer geschitt mat der Verëffentlechung vun enger neier stabiler Versioun, enthält Bullseye Honnerte vun neie Packagen an Updates fir Dausende vun aneren.

Zënter datt Debian e grousse Prozentsaz vu Webserver op der ganzer Welt dréit, wäerte mir an dësem Artikel erkläre wéi Dir de LAMP-Stack an Debian 11 installéiere wëllt an och op eeler Debian 10 an Debian 9 Verëffentlechungen funktionnéiert.

Dëst erlaabt Systemadministrateuren fir fuschneie Webserver uewen op Bullseye opzestellen andeems se déi rezent Updates vun den offiziellen Repositories vun der Verdeelung benotzen. Et gëtt ugeholl datt Dir vun Debian 10 op Debian 11 aktualiséiert hutt.

Installéiert LAMP an Debian

De \M am LAMP steet fir MariaDB oder MySQL, den Datebankserver fir de Stack. Ofhängeg vun Ärer Wiel, kënnt Dir den Datebankserver an déi aner Komponenten (den Apache Webserver a PHP) wéi follegt installéieren.

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

Als perséinlech Präferenz wäert ech MariaDB am Rescht vun dësem Artikel benotzen.

Wann d'Installatioun fäerdeg ass, loosst eis sécher sinn datt all d'Servicer lafen. Wann jo, déi folgend Kommandoen.

# systemctl is-active apache2
# systemctl is-active mariadb

soll fir béid aktiv zréck. Soss, start béid Servicer manuell:

# systemctl start {apache2,mariadb}

Séchert MariaDB an Debian

Schlussendlech, ier mer weidergoen, loosst eis mysql_secure_installation benotzen fir d'Passwuert fir den Datebank Root Kont opzestellen, anonym Benotzer ewechzehuelen, Root Login op afstand ze verzichten an Testdatenbank ze läschen.

# mysql_secure_installation

Testen LAMP op Debian

Fir unzefänken, wäerte mir eng Probe Datebank erstellen a populéieren. Als nächst wäerte mir e Basis PHP Skript benotzen fir e Set vu Rekorder aus der Datebank am JSON Format ze recuperéieren.

Schlussendlech wäerte mir Firefox d'Entwéckler Tools benotzen fir d'Versioun vun Apache ze verifizéieren déi benotzt gëtt. Obwuel mir dës selwecht Informatiounen erauszefannen mat.

# apache2 -v

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

de Grond firwat mir e Skript benotzen ass sécherzestellen datt all Komponente vum Stack richteg funktionnéieren wann se zesumme gebündelt sinn.

Loosst eis d'MariaDB Prompt mat dem folgenden Kommando aginn.

# mysql -u root -p

a gitt d'Passwuert dat an der viregter Sektioun gewielt gouf.

Elo wäerte mir eng Datebank mam Numm LibraryDB erstellen wéi follegt:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

a füügt zwee Dëscher mam Numm AuthorsTBL a BooksTBL derbäi:

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)
);

Aus Sécherheetsgrënn erstellen mir e spezielle Kont fir Zougang zu eiser Datebank ze kréien:

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

De leschte Schrëtt besteet elo aus der Populatioun vun den Dëscher mat Auteuren a Bicher:

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');

De folgende PHP Skript verbënnt als éischt mat der Datebank an recuperéiert d'Records déi mat der Ufro passen. Wann e Feeler geschitt, gëtt eng deskriptiv Message ugewisen fir eis en Hiweis ze ginn wat falsch ass.

Späichert de folgende Skript als booksandauthors.php ënner /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);
?>

Ännert d'Besëtzer op www-data a füügt déi entspriechend Permissiounen derbäi:

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

Endlech, öffnen e Webbrowser a weisen op d'URL wou de Skript wunnt.

http://192.168.0.35/booksandauthors.php

Dat ass et! An dësem Artikel hu mir erkläert wéi Dir de LAMP-Stack op Debian 11 installéiere kënnt an testen. Wann Dir Froen oder Kommentaren iwwer dësen Artikel hutt, zéckt net fir eis mat dem Formulaire hei drënner ze loossen.