Giunsa ang Pag-install sa LAMP Stack sa Debian 11/10/9


Niadtong (Agosto 14, 2021), gipahibalo sa proyekto sa Debian ang pagkaanaa sa bag-ong stable nga bersyon (Debian 11) nga gi-codenamed Bullseye.

Uban niini nga pagpagawas, ang ilado ug kaylap nga gigamit nga Debian 10 Buster nakaangkon sa daan nga lig-on nga kahimtang, nga nagtumong sa miaging stable nga repository. Sama sa kanunay nga mahitabo sa pagpagawas sa usa ka bag-ong stable nga bersyon, ang Bullseye naglakip sa gatusan ka bag-ong mga pakete ug mga update sa liboan pa.

Tungod kay ang Debian adunay daghang porsyento sa mga web server sa tibuuk kalibutan, sa kini nga artikulo among ipasabut kung giunsa ang pag-install sa LAMP stack sa Debian 11 ug nagtrabaho usab sa mga tigulang nga Debian 10 ug Debian 9 nga gipagawas.

Gitugotan niini ang mga tagdumala sa sistema nga magbutang mga bag-ong web server sa ibabaw sa Bullseye gamit ang bag-ong mga update sa opisyal nga mga repositoryo sa pag-apod-apod. Gituohan nga nag-upgrade ka gikan sa Debian 10 hangtod sa Debian 11.

Pag-instalar sa LAMP sa Debian

Ang \M sa LAMP nagpasabot sa MariaDB o MySQL, ang database server alang sa stack. Depende sa imong gusto, mahimo nimong i-install ang database server ug ang ubang mga component (ang Apache web server ug PHP) sama sa mosunod.

# 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

Ingon usa ka personal nga gusto, akong gamiton ang MariaDB sa nahabilin nga artikulo.

Kung nahuman na ang pag-install, siguruha naton nga ang tanan nga mga serbisyo nagdagan. Kon mao, ang mosunod nga mga sugo.

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

kinahanglan nga mobalik aktibo alang sa duha. Kung dili, sugdi ang duha ka serbisyo nga mano-mano:

# systemctl start {apache2,mariadb}

Pagsiguro sa MariaDB sa Debian

Sa katapusan, sa dili pa magpadayon gamiton nato ang mysql_secure_installation aron i-set up ang password alang sa database root account, tangtangon ang mga anonymous nga tiggamit, dili tugotan ang root login sa layo ug tangtangon ang test database.

# mysql_secure_installation

Pagsulay sa LAMP sa Debian

Sa pagsugod, maghimo kami ug magpuno sa usa ka sample database. Sunod, mogamit kami usa ka sukaranan nga script sa PHP aron makuha ang usa ka set sa mga rekord gikan sa database sa format nga JSON.

Sa katapusan, among gamiton ang mga himan sa developer sa Firefox aron mapamatud-an ang bersyon sa Apache nga gigamit. Bisan kung nahibal-an namon kini nga parehas nga kasayuran sa.

# apache2 -v

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

ang rason ngano nga naggamit kami og script mao ang pagsiguro nga ang tanan nga mga sangkap sa stack nagtrabaho sa husto kung gihiusa.

Atong isulod ang MariaDB prompt uban sa mosunod nga sugo.

# mysql -u root -p

ug isulod ang password nga gipili sa miaging seksyon.

Karon maghimo kami usa ka database nga ginganlag LibraryDB ingon sa mosunod:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

ug idugang ang duha ka lamesa nga ginganlan og AuthorsTBL ug 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)
);

Alang sa mga hinungdan sa seguridad, maghimo kami usa ka espesyal nga account aron ma-access ang among database:

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

Ang katapusang lakang karon naglangkob sa pagpuno sa mga lamesa sa mga Awtor ug Libro:

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

Ang mosunod nga PHP script una nga magkonektar sa database ug makuha ang mga rekord nga mohaum sa pangutana. Kung adunay mahitabo nga sayup, usa ka deskriptibo nga mensahe ang ipakita aron mahatagan kami usa ka timaan kung unsa ang sayup.

I-save ang mosunod nga script isip booksandauthors.php ubos sa /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);
?>

Usba ang pagpanag-iya sa www-data ug idugang ang angay nga mga pagtugot:

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

Sa katapusan, ablihi ang usa ka web browser ug itudlo kini sa URL diin nagpuyo ang script.

http://192.168.0.35/booksandauthors.php

Mao na! Niini nga artikulo, among gipatin-aw kung giunsa ang pag-install ug pagsulay sa LAMP stack sa Debian 11. Kung adunay ka mga pangutana o komento bahin sa kini nga artikulo, ayaw pagpanuko sa pagpahibalo kanamo pinaagi sa paggamit sa porma sa ubos.