Устанавливаем стек 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.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);
?>

Измените владельца на 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. Остались вопросы? Пишите в комментариях. 

Добавить комментарий

Спасибо, что поделились