Ricerca nel sito web

Come installare LAMP Stack su Debian 10/11/9


Il (14 agosto 2021), il progetto Debian ha annunciato la disponibilità della nuova versione stabile (Debian 11) nome in codice Bullseye.

Con questa versione il noto e ampiamente utilizzato Debian 10 Buster ha ottenuto lo status di vecchia stabilità, che designa il precedente repository stabile. Come sempre accade con il rilascio di una nuova versione stabile, Bullseye include centinaia di nuovi pacchetti e aggiornamenti a migliaia di altri.

Poiché Debian alimenta una grande percentuale di server web in tutto il mondo, in questo articolo spiegheremo come installare lo stack LAMP in Debian 11 e funziona anche su Debian 10 precedente. e versioni Debian 9.

Ciò consentirà agli amministratori di sistema di configurare nuovi server web su Bullseye utilizzando i recenti aggiornamenti ai repository ufficiali della distribuzione. Si presuppone che tu abbia installato il server Debian 11 minimal su una macchina bare metal, virtuale o VPS o che tu abbia eseguito l'aggiornamento da Debian 10 a Debian 11.

Installazione di LAMP in Debian

La “M” in LAMP sta per MariaDB o MySQL, il server database per lo stack. A seconda della vostra scelta, potete installare il server database e gli altri componenti (server web Apache e PHP) come segue.

Installa LAMP con MariaDB su Debian

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

Installa LAMP con MySQL su Debian

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

Come preferenza personale, utilizzerò MariaDB nel resto di questo articolo.

Una volta completata l'installazione, assicuriamoci che tutti i servizi siano in esecuzione. In tal caso, i seguenti comandi.

systemctl is-active apache2
systemctl is-active mariadb

dovrebbe tornare attivo per entrambi. Altrimenti, avvia entrambi i servizi manualmente:

systemctl start {apache2,mariadb}

Proteggere MariaDB in Debian

Infine, prima di procedere utilizziamo mysql_secure_installation per impostare la password per l'account root del database, rimuovere gli utenti anonimi, impedire l'accesso root da remoto e rimuovere il database di test.

mysql_secure_installation

Testare LAMP su Debian

Per iniziare, creeremo e popoleremo un database di esempio. Successivamente, utilizzeremo uno script PHP di base per recuperare una serie di record dal database in formato JSON.

Infine, utilizzeremo gli strumenti di sviluppo di Firefox per verificare la versione di Apache utilizzata. Sebbene potremmo scoprire queste stesse informazioni con.

apache2 -v

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

il motivo per cui utilizziamo uno script è per assicurarci che tutti i componenti dello stack funzionino correttamente quando raggruppati insieme.

Creazione e popolamento di un database

Inseriamo il prompt di MariaDB con il seguente comando.

mysql -u root -p

e inserisci la password scelta nella sezione precedente.

Ora creeremo un database chiamato LibraryDB come segue:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

e aggiungi due tabelle denominate AuthorsTBL e 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 motivi di sicurezza, creeremo un account speciale per accedere al nostro database:

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

L'ultimo passaggio ora consiste nel popolare le tabelle con Autori e Libri:

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

Testare la connessione al database con lo script PHP

Il seguente script PHP si connetterà prima al database e recupererà i record che corrispondono alla query. Se si verifica un errore, verrà visualizzato un messaggio descrittivo in modo da darci un suggerimento su cosa c'è che non va.

Salva il seguente script come booksandauthors.php in /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);
?>

Modifica la proprietà in www-data e aggiungi le autorizzazioni appropriate:

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

Infine, apri un browser Web e indirizzalo all'URL in cui risiede lo script.

http://192.168.0.35/booksandauthors.php

Questo è tutto! In questo articolo abbiamo spiegato come installare e testare lo stack LAMP su Debian 11. Se hai domande o commenti su questo articolo, non esitare a farcelo sapere utilizzando il modulo sottostante.