Otu esi etinye Stack LAMP na Debian 11/10/9


Na (August 14, 2021), oru ngo Debian kwuputara na enwere ụdị kwụsiri ike ọhụrụ (Debian 11) akpọrọ Bullseye.

Site na ntọhapụ a, Debian 10 Buster ama ama na nke a na-ejikarị eme ihe nwetara ọkwa kwụsiri ike, nke na-akọwapụta ebe nchekwa kwụsiri ike gara aga. Dị ka ọ na-eme mgbe niile na mwepụta nke ụdị kwụsiri ike ọhụrụ, Bullseye gụnyere narị narị ngwugwu ọhụrụ yana mmelite nye ọtụtụ puku ndị ọzọ.

Ebe ọ bụ na Debian na-enwe ike pasentị buru ibu nke sava weebụ n'ụwa niile, n'isiokwu a, anyị ga-akọwa otu esi etinye nchịkọta LAMP na Debian 11 ma na-arụkwa ọrụ na mwepụta Debian 10 na Debian 9 ochie.

Nke a ga-ekwe ka ndị nchịkwa sistemụ guzobe sava weebụ ọhụrụ n'elu Bullseye site na iji mmelite na-adịbeghị anya na ebe nchekwa ọrụ nkesa. A na-eche na ị kwalitela site na Debian 10 ruo Debian 11.

Ịwụnye LAMP na Debian

M dị na LAMP na-anọchi anya MariaDB ma ọ bụ MySQL, ihe nkesa nchekwa data maka nchịkọta. Dabere na nhọrọ gị, ịnwere ike ịwụnye ihe nkesa nchekwa data na ihe ndị ọzọ (sava Apache na PHP) dị ka ndị a.

# 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

Dịka mmasị onwe onye, m ga-eji MariaDB n'ime edemede a fọdụrụnụ.

Ozugbo echichi mechara, ka anyị hụ na ọrụ niile na-arụ ọrụ. Ọ bụrụ otu a, iwu ndị a.

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

kwesịrị ịlaghachi n'ọrụ maka ha abụọ. Ma ọ bụghị ya, jiri aka gị malite ọrụ abụọ a:

# systemctl start {apache2,mariadb}

Na-echekwa MariaDB na Debian

N'ikpeazụ, tupu anyị aga n'ihu, ka anyị jiri mysql_secure_installation melite paswọọdụ maka akaụntụ mgbọrọgwụ nchekwa data, wepụ ndị ọrụ na-amaghị aha, kwe ka nbanye mgbọrọgwụ na-enweghị isi wee wepụ nchekwa data ule.

# mysql_secure_installation

Na-anwale LAMP na Debian

Iji bido, anyị ga-emepụta ma mejupụta nchekwa data nlele. Na-esote, anyị ga-eji mkpụrụedemede PHP bụ isi iji weghachite ndekọ ndekọ na nchekwa data na usoro JSON.

N'ikpeazụ, anyị ga-eji ngwaọrụ nrụpụta Firefox iji nyochaa ụdị Apache a na-eji. Agbanyeghị na anyị nwere ike ịchọpụta otu ozi a na.

# apache2 -v

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

ihe mere anyị ji eji edemede eme ihe bụ iji hụ na akụkụ niile nke tojupụtara na-arụ ọrụ nke ọma mgbe ejikọtara ọnụ.

Ka anyị jiri iwu a tinye MariaDB ozugbo.

# mysql -u root -p

ma tinye paswọọdụ ahọpụtara na ngalaba gara aga.

Ugbu a, anyị ga-emepụta nchekwa data aha ya bụ LibraryDB dị ka ndị a:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

ma tinye tebụl abụọ aha ya bụ 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)
);

Maka ebumnuche nchekwa, anyị ga-emepụta akaụntụ pụrụ iche iji nweta nchekwa data anyị:

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

Nzọụkwụ ikpeazụ ugbu a bụ iji ndị ode akwụkwọ na akwụkwọ mejupụta tebụl:

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

Edemede PHP na-esote ga-ebu ụzọ jikọọ na nchekwa data wee weghachite ndekọ ndị dabara na ajụjụ a. Ọ bụrụ na njehie emee, a ga-egosipụta ozi nkọwa iji nye anyị ntụnye aka na ihe adịghị mma.

Chekwaa edemede a dị ka booksandauthors.php n'okpuru /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);
?>

Gbanwee nwe na www-data ma tinye ikike kwesịrị ekwesị:

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

N'ikpeazụ, mepee ihe nchọgharị weebụ wee tụọ ya na URL ebe edemede ahụ bi.

http://192.168.0.35/booksandauthors.php

Ọ bụ ya! N'isiokwu a, anyị akọwala otu esi etinye ma nwalee nchịkọta LAMP na Debian 11. Ọ bụrụ na ị nwere ajụjụ ma ọ bụ kwuo banyere isiokwu a, egbula oge ime ka anyị mara site na iji ụdị dị n'okpuru.