Com instal·lar LAMP Stack a Debian 11/10/9


El (14 d'agost de 2021), el projecte Debian va anunciar la disponibilitat de la nova versió estable (Debian 11) amb el nom en clau Bullseye.

Amb aquesta versió, el conegut i àmpliament utilitzat Debian 10 Buster va obtenir l'estat d'antiga estabilitat, que designa el repositori estable anterior. Com passa sempre amb el llançament d'una nova versió estable, Bullseye inclou centenars de paquets nous i actualitzacions de milers d'altres.

Com que Debian alimenta un gran percentatge de servidors web a tot el món, en aquest article explicarem com instal·lar la pila LAMP a Debian 11 i també funciona amb versions anteriors de Debian 10 i Debian 9.

Això permetrà als administradors del sistema configurar servidors web nous a sobre de Bullseye utilitzant les actualitzacions recents dels dipòsits oficials de la distribució. Se suposa que heu actualitzat de Debian 10 a Debian 11.

Instal·lant LAMP a Debian

La \M de LAMP significa MariaDB o MySQL, el servidor de bases de dades per a la pila. Depenent de la vostra elecció, podeu instal·lar el servidor de bases de dades i els altres components (el servidor web Apache i PHP) de la següent manera.

# 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

Com a preferència personal, utilitzaré MariaDB a la resta d'aquest article.

Un cop finalitzada la instal·lació, ens assegurem que tots els serveis estan en funcionament. Si és així, les ordres següents.

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

hauria de tornar actiu per a tots dos. En cas contrari, inicieu els dos serveis manualment:

# systemctl start {apache2,mariadb}

Assegurant MariaDB a Debian

Finalment, abans de continuar, utilitzem mysql_secure_installation per configurar la contrasenya per al compte root de la base de dades, eliminar usuaris anònims, no permetre l'inici de sessió root de forma remota i eliminar la base de dades de prova.

# mysql_secure_installation

Provant LAMP a Debian

Per començar, crearem i omplirem una base de dades de mostra. A continuació, utilitzarem un script PHP bàsic per recuperar un conjunt de registres de la base de dades en format JSON.

Finalment, utilitzarem les eines de desenvolupament de Firefox per verificar la versió d'Apache que s'utilitza. Encara que podríem esbrinar aquesta mateixa informació amb.

# apache2 -v

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

el motiu pel qual estem utilitzant un script és per assegurar-nos que tots els components de la pila funcionen correctament quan s'agrupen.

Introduïm l'indicador de MariaDB amb l'ordre següent.

# mysql -u root -p

i introduïu la contrasenya escollida a la secció anterior.

Ara crearem una base de dades anomenada LibraryDB de la següent manera:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

i afegiu dues taules anomenades AuthorsTBL i 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)
);

Per motius de seguretat, crearem un compte especial per accedir a la nostra base de dades:

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

L'últim pas ara consisteix a omplir les taules amb Autors i Llibres:

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

El següent script PHP es connectarà primer a la base de dades i recuperarà els registres que coincideixen amb la consulta. Si es produeix un error, es mostrarà un missatge descriptiu per donar-nos una pista sobre què passa.

Deseu l'script següent com a booksandauthors.php a /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);
?>

Canvieu la propietat a www-data i afegiu els permisos adequats:

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

Finalment, obriu un navegador web i apunteu-lo a l'URL on resideix l'script.

http://192.168.0.35/booksandauthors.php

Això és! En aquest article, hem explicat com instal·lar i provar la pila LAMP a Debian 11. Si teniu preguntes o comentaris sobre aquest article, no dubteu a fer-nos-ho saber mitjançant el formulari següent.