Kako namestiti sklad LAMP na Debian 11/10/9


Dne (14. avgusta 2021) je projekt Debian objavil razpoložljivost nove stabilne različice (Debian 11) s kodnim imenom Bullseye.

S to izdajo je dobro znani in široko uporabljeni Debian 10 Buster pridobil status starega stabilnega, ki označuje prejšnje stabilno skladišče. Kot se vedno zgodi z izdajo nove stabilne različice, Bullseye vključuje na stotine novih paketov in posodobitev na tisoče drugih.

Ker Debian poganja velik odstotek spletnih strežnikov po vsem svetu, bomo v tem članku razložili, kako namestiti sklad LAMP v Debian 11 in deluje tudi na starejših izdajah Debian 10 in Debian 9.

To bo sistemskim skrbnikom omogočilo, da na vrhu Bullseye nastavijo povsem nove spletne strežnike z uporabo nedavnih posodobitev uradnih repozitorijev distribucije. Predpostavlja se, da ste nadgradili z Debian 10 na Debian 11.

Namestitev LAMP v Debian

\M v LAMP pomeni MariaDB ali MySQL, strežnik baze podatkov za sklad. Glede na vašo izbiro lahko namestite strežnik baz podatkov in druge komponente (spletni strežnik Apache in PHP), kot sledi.

# 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

Kot osebno preferenco bom v nadaljevanju tega članka uporabil MariaDB.

Ko je namestitev končana, poskrbimo, da vse storitve delujejo. Če je tako, naslednji ukazi.

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

mora biti aktiven za oba. V nasprotnem primeru zaženite obe storitvi ročno:

# systemctl start {apache2,mariadb}

Zaščita MariaDB v Debianu

Nazadnje, preden nadaljujemo, uporabimo mysql_secure_installation za nastavitev gesla za korenski račun baze podatkov, odstranitev anonimnih uporabnikov, onemogočimo root prijavo na daljavo in odstranite testno bazo podatkov.

# mysql_secure_installation

Testiranje LAMP v Debianu

Za začetek bomo ustvarili in zapolnili vzorčno bazo podatkov. Nato bomo uporabili osnovni skript PHP za pridobivanje niza zapisov iz baze podatkov v formatu JSON.

Nazadnje bomo uporabili orodja za razvijalce Firefoxa za preverjanje uporabljene različice Apache. Čeprav bi te iste informacije lahko izvedeli s.

# apache2 -v

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

razlog, zakaj uporabljamo skript, je zagotoviti, da vse komponente sklada delujejo pravilno, ko so združene skupaj.

Vnesite poziv MariaDB z naslednjim ukazom.

# mysql -u root -p

in vnesite geslo, ki ste ga izbrali v prejšnjem razdelku.

Zdaj bomo ustvarili bazo podatkov z imenom LibraryDB, kot sledi:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

in dodajte dve tabeli z imenom AuthorsTBL in 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)
);

Iz varnostnih razlogov bomo ustvarili poseben račun za dostop do naše baze podatkov:

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

Zadnji korak je zdaj zapolnitev tabel z avtorji in knjigami:

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

Naslednji skript PHP se bo najprej povezal z bazo podatkov in pridobil zapise, ki se ujemajo s poizvedbo. Če pride do napake, bo prikazano opisno sporočilo, ki nam bo dalo namig, kaj je narobe.

Shranite naslednji skript kot booksandauthors.php pod /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);
?>

Spremenite lastništvo v www-data in dodajte ustrezna dovoljenja:

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

Na koncu odprite spletni brskalnik in ga usmerite na URL, kjer se nahaja skript.

http://192.168.0.35/booksandauthors.php

To je to! V tem članku smo razložili, kako namestiti in preizkusiti sklad LAMP v Debianu 11. Če imate vprašanja ali pripombe o tem članku, nam ne oklevajte in nam to sporočite s spodnjim obrazcem.