Поиск по сайту:

Как установить стек LAMP в Debian 10.11.9


(14 августа 2021 г.) проект Debian объявил о доступности новой стабильной версии (Debian 11) под кодовым названием Bulseye.

В этом выпуске известный и широко используемый Debian 10 Buster получил статус старой стабильной версии, что обозначает предыдущий стабильный репозиторий. Как это всегда бывает с выпуском новой стабильной версии, Bulllseye включает в себя сотни новых пакетов и обновления для тысяч других.

Поскольку Debian поддерживает большую часть веб-серверов по всему миру, в этой статье мы объясним, как установить стек LAMP в Debian 11, а также как он работает в более старых версиях Debian 10. и версии Debian 9.

Это позволит системным администраторам настраивать новые веб-серверы поверх Bullseye, используя последние обновления официальных репозиториев дистрибутива. Предполагается, что вы установили минимальный сервер Debian 11 на «голое железо», виртуальную машину или VPS или обновили Debian 10 до Debian 11.

Установка LAMP в Debian

“M” в LAMP означает MariaDB или MySQL, сервер базы данных для стека. В зависимости от вашего выбора вы можете установить сервер базы данных и другие компоненты (веб-сервер Apache и PHP) следующим образом.

Установите LAMP с MariaDB на Debian

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

Установите LAMP с MySQL на Debian

apt update && apt install apache2 mysql-server mysql-client mysql-common php php-mysqli

Лично я предпочитаю использовать MariaDB в оставшейся части этой статьи.

После завершения установки давайте убедимся, что все службы работают. Если да, то следующие команды.

systemctl is-active apache2
systemctl is-active mariadb

должен вернуться активным для обоих. В противном случае запустите обе службы вручную:

systemctl start {apache2,mariadb}

Защита MariaDB в Debian

Наконец, прежде чем продолжить, давайте воспользуемся mysql_secure_installation, чтобы установить пароль для корневой учетной записи базы данных, удалить анонимных пользователей, запретить удаленный вход в систему 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';

Последний шаг теперь состоит в заполнении таблиц значениями Авторы и Книги:

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. Если у вас есть вопросы или комментарии по поводу этой статьи, не стесняйтесь, дайте нам знать, используя форму ниже.