Встановлюємо стек LAMP на Debian 11

LAMP — це акронім від назв Linux, Apache, MariaDB (MySQL) та PHP. Ці технології — надійний набір ПЗ для розробки високопродуктивних вебдодатків. Вам, напевно, доведеться працювати з цим стеком, тому ми розповімо як його встановити на Debian та налаштувати.

Встановлюємо LAMP у Debian

Інсталяція LAMP з MariaDB в Debian:

# apt update && apt install apache2 mariadb-server mariadb-client mariadb-common php php-mysqli

Після завершення процесу потрібно переконатися, що всі служби працюють. Далі, виконайте такі команди:

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

Захищаємо MariaDB у Debian

Щоб захистити MariaDB в Debian, потрібно встановити пароль для облікового запису бази даних root. Також важливо видалити анонімних користувачів та заборонити віддалений вхід до системи root. Не слід забувати й про видалення тестової бази даних. Для цього всього запустіть наступну команду:

# mysql_secure_installation

Тестуємо LAMP на Debian

Для початку потрібно створити та заповнити зразок бази даних. Далі, використовуючи базовий сценарій PHP, отримати набір записів з БД у форматі JSON. Потім, використовуючи інструменти Firefox, перевірте поточну версію Apache. Звичайно ж усю цю інформацію ви могли б дізнатися так:

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

Юзати потрібно саме сценарій, але навіщо? Щоб переконатися, що всі компоненти стека під час поєднання працюють правильно.

Створюємо та заповнюємо бази даних

Увійдіть у командний рядок MariaDB:

# mysql -u root -p

Введіть пароль, який ви вибрали раніше. Тепер створіть базу даних з назвою LibraryDB. Ось приклад:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

Ну і додайте дві таблиці з іменами AuthorsTBL і 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)
);

З метою безпеки створіть спеціальний обліковий запис для доступу до вашої бази даних:

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

Останній крок. Заповніть таблиці Authors і Books:

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

Тестуємо підключення до БД за допомогою PHP-скрипту

Сценарій PHP повинен під’єднатися до бази даних та отримати записи, які відповідають запиту. Якщо трапиться помилка буде відображено повідомлення з підказкою, що пішло не так.

Збережіть наступний скрипт як booksandauthors.php в /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.Titl
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);
?>

Змініть власника на www-data і додайте відповідні дозволи:

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

Відкрийте веббраузер і вкажіть в ньому URL-адресу, за якою знаходиться скрипт.

http://192.168.0.35/booksandauthors.php

Ось і все! Ви встановили та протестували стек LAMP у Debian 11. Залишились питання? Пишіть у коментарях. 

Залишити відповідь

Дякуємо, що поділились