Jinsi ya Kufunga Stack LAMP kwenye Debian 11/10/9


Mnamo (Agosti 14, 2021), mradi wa Debian ulitangaza kupatikana kwa toleo jipya thabiti (Debian 11) lililopewa jina la Bullseye.

Kwa toleo hili, Debian 10 Buster inayojulikana na inayotumiwa sana ilipata hadhi ya uthabiti ya zamani, ambayo inabainisha hazina thabiti ya hapo awali. Kama inavyotokea kila wakati kwa kutolewa kwa toleo jipya thabiti, Bullseye inajumuisha mamia ya vifurushi vipya na masasisho kwa maelfu ya wengine.

Kwa kuwa Debian ina nguvu kwa asilimia kubwa ya seva za wavuti ulimwenguni kote, katika nakala hii tutaelezea jinsi ya kusanikisha safu ya LAMP kwenye Debian 11 na pia inafanya kazi kwenye matoleo ya zamani ya Debian 10 na Debian 9.

Hii itaruhusu wasimamizi wa mfumo kusanidi seva mpya za wavuti juu ya Bullseye kwa kutumia masasisho ya hivi majuzi kwenye hazina rasmi za usambazaji. Inachukuliwa kuwa umeboresha kutoka Debian 10 hadi Debian 11.

Kufunga LAMP katika Debian

\M katika LAMP inawakilisha MariaDB au MySQL, seva ya hifadhidata ya rafu. Kutegemeana na chaguo lako, unaweza kusakinisha seva ya hifadhidata na vipengee vingine (seva ya wavuti ya Apache na PHP) kama ifuatavyo.

# 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

Kama upendeleo wa kibinafsi, nitatumia MariaDB katika nakala hii yote.

Mara tu usakinishaji ukamilika, hebu tuhakikishe kuwa huduma zote zinaendelea. Ikiwa ndivyo, amri zifuatazo.

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

inapaswa kurudi ikiwa hai kwa zote mbili. Vinginevyo, anza huduma zote mbili kwa mikono:

# systemctl start {apache2,mariadb}

Kulinda MariaDB katika Debian

Hatimaye, kabla ya kuendelea, hebu tutumie mysql_secure_installation ili kusanidi nenosiri la akaunti ya msingi ya hifadhidata, kuondoa watumiaji wasiojulikana, kutoruhusu kuingia kwa mizizi kwa mbali na kuondoa hifadhidata ya majaribio.

# mysql_secure_installation

Kujaribu LAMP kwenye Debian

Kuanza, tutaunda na kujaza hifadhidata ya sampuli. Kisha, tutatumia hati ya msingi ya PHP kupata seti ya rekodi kutoka kwa hifadhidata katika umbizo la JSON.

Hatimaye, tutatumia zana za msanidi wa Firefox ili kuthibitisha toleo la Apache linalotumika. Ingawa tunaweza kupata habari hii sawa na.

# apache2 -v

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

sababu kwa nini tunatumia hati ni kuhakikisha kuwa vipengee vyote vya rafu vinafanya kazi ipasavyo vinapounganishwa pamoja.

Wacha tuingie haraka ya MariaDB na amri ifuatayo.

# mysql -u root -p

na ingiza nenosiri lililochaguliwa katika sehemu iliyotangulia.

Sasa tutaunda hifadhidata inayoitwa LibraryDB kama ifuatavyo:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

na ongeza jedwali mbili zinazoitwa AuthorsTBL na 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)
);

Kwa sababu za usalama, tutafungua akaunti maalum ili kufikia hifadhidata yetu:

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

Hatua ya mwisho sasa inajumuisha kujaza majedwali na Waandishi na Vitabu:

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

Hati ifuatayo ya PHP itaunganishwa kwanza kwenye hifadhidata na kupata rekodi zinazolingana na hoja. Hitilafu ikitokea, ujumbe wa maelezo utaonyeshwa ili kutupa kidokezo kuhusu nini kibaya.

Hifadhi hati ifuatayo kama booksandauthors.php chini ya /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);
?>

Badilisha umiliki kuwa www-data na uongeze ruhusa zinazofaa:

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

Hatimaye, fungua kivinjari na uelekeze kwa URL ambapo hati inakaa.

http://192.168.0.35/booksandauthors.php

Ni hayo tu! Katika makala hii, tumeelezea jinsi ya kufunga na kupima stack ya LAMP kwenye Debian 11. Ikiwa una maswali au maoni kuhusu makala hii, usisite kutujulisha kwa kutumia fomu hapa chini.