Debian 11/10/9-da LAMP stakasyny nädip gurmaly


(2021-nji ýylyň 14-nji awgusty) Debian taslamasy Bullseye ady bilen täze durnukly wersiýanyň (Debian 11) bardygyny mälim etdi.

Bu goýberiliş bilen meşhur we giňden ulanylýan Debian 10 Buster, öňki durnukly ammary kesgitleýän köne durnukly statusa eýe boldy. Hemişe täze durnukly wersiýanyň çykmagy bilen bolşy ýaly, Bullseye ýüzlerçe täze paketleri we başga-da müňlerçe täzelenmeleri öz içine alýar.

Debian bütin dünýäde web serwerleriniň ep-esli bölegine eýe bolansoň, bu makalada LAMP stakasyny Debian 11-de nädip gurmalydygyny we köne Debian 10 we Debian 9 neşirleriniň üstünde işlejekdigini düşündireris.

Bu ulgam dolandyryjylaryna paýlanyşyň resmi ammarlaryna soňky täzelenmeleri ulanyp, Bullseye-iň üstünde täze web serwerlerini gurmaga mümkinçilik berer. Debian 10-dan Debian 11-e täzelediňiz öýdülýär.

Debian-da LAMP gurmak

LAMP-daky\M stakanyň maglumat bazasy serweri MariaDB ýa-da MySQL diýmekdir. Islegiňize görä maglumatlar bazasynyň serwerini we beýleki bölekleri (Apache web serweri we PHP) aşakdaky ýaly gurup bilersiňiz.

# 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

Şahsy isleg hökmünde, şu makalanyň galan böleginde MariaDB ulanaryn.

Gurmak gutaransoň, ähli hyzmatlaryň işleýändigine göz ýetireliň. Şeýle bolsa, aşakdaky buýruklar.

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

ikisine-de işjeň gaýdyp gelmeli. Otherwiseogsam, iki hyzmaty el bilen başlaň:

# systemctl start {apache2,mariadb}

Debian-da MariaDB-ni goramak

Ahyrynda, dowam etmezden ozal maglumatlar bazasynyň kök hasaby üçin paroly düzmek, näbelli ulanyjylary aýyrmak, kök girişini uzakdan gadagan etmek we synag bazasyny aýyrmak üçin mysql_secure_installation ulanalyň.

# mysql_secure_installation

Debian-da LAMP synagy

Başlamak üçin, nusga maglumatlar bazasyny dörederis we köpelderis. Ondan soň, JSON formatda maglumatlar bazasyndan ýazgylar toplumyny almak üçin esasy PHP skriptini ulanarys.

Ahyrynda, ulanylýan Apache wersiýasyny barlamak üçin Firefox-yň dörediji gurallaryny ulanarys. Şol bir maglumatlary bilip bilsek-de.

# apache2 -v

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

skript ulanmagymyzyň sebäbi, bir ýere jemlenende stakanyň ähli bölekleriniň dogry işleýändigine göz ýetirmekdir.

Aşakdaky buýruk bilen MariaDB haýyşyna gireliň.

# mysql -u root -p

we öňki bölümde saýlanan paroly giriziň.

Indi “LibraryDB” atly maglumat bazasyny dörederis:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

we AuthorsTBL we BooksTBL atly iki tablisany goşuň:

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

Howpsuzlyk sebäpli maglumatlar bazamyza girmek üçin ýörite hasap dörederis:

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

Iň soňky ädim indi awtorlar we kitaplar bilen tablisalary köpeltmekden ybarat:

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

Aşakdaky PHP skripti ilki bilen maglumatlar bazasyna birikdiriler we soraga gabat gelýän ýazgylary alar. Analňyşlyk ýüze çyksa, nämäniň ýalňyşdygyny görkezmek üçin düşündirişli habar görkeziler.

Aşakdaky ýazgyny/var/www/html astynda bookandauthors.php görnüşinde ýazdyryň:

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

Eýeçiligini www-maglumatlara üýtgediň we degişli rugsatlary goşuň:

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

Netijede, web brauzerini açyň we skriptiň ýaşaýan URL-sine görkeziň.

http://192.168.0.35/booksandauthors.php

Bu! Bu makalada, Debian 11-de LAMP stakasyny nädip gurmalydygyny we synagdan geçirmelidigini düşündirdik, bu makala barada soraglaryňyz ýa-da teswirleriňiz bar bolsa, aşakdaky formany ulanyp bize habar bermekden çekinmäň.