Pesquisa de site

Como instalar a pilha LAMP no Debian 11/10/9


Em (14 de agosto de 2021), o projeto Debian anunciou a disponibilidade da nova versão estável (Debian 11) com o codinome Bullseye.

Com este lançamento, o conhecido e amplamente utilizado Debian 10 Buster ganhou o status de old-stable, que designa o repositório estável anterior. Como sempre acontece com o lançamento de uma nova versão estável, o Bullseye inclui centenas de novos pacotes e atualizações para milhares de outros.

Como o Debian alimenta uma grande porcentagem de servidores web em todo o mundo, neste artigo explicaremos como instalar a pilha LAMP no Debian 11 e também funciona no Debian 10 mais antigo. e versões Debian 9.

Isso permitirá que os administradores de sistema configurem novos servidores web no Bullseye usando as atualizações recentes dos repositórios oficiais da distribuição. Presume-se que você tenha instalado o servidor mínimo Debian 11 em um bare metal, máquina virtual ou VPS, ou tenha atualizado do Debian 10 para o Debian 11.

Instalando LAMP no Debian

O “M ” em LAMP significa MariaDB ou MySQL, o servidor de banco de dados da pilha. Dependendo da sua escolha, você pode instalar o servidor de banco de dados e os outros componentes (o servidor web Apache e PHP) como segue.

Instale LAMP com MariaDB no Debian

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

Instale LAMP com MySQL no Debian

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

Como preferência pessoal, usarei MariaDB no restante deste artigo.

Assim que a instalação for concluída, vamos verificar se todos os serviços estão funcionando. Nesse caso, os seguintes comandos.

systemctl is-active apache2
systemctl is-active mariadb

deve retornar ativo para ambos. Caso contrário, inicie ambos os serviços manualmente:

systemctl start {apache2,mariadb}

Protegendo MariaDB no Debian

Finalmente, antes de prosseguir, vamos usar mysql_secure_installation para configurar a senha da conta root do banco de dados, remover usuários anônimos, proibir login root remotamente e remover o banco de dados de teste.

mysql_secure_installation

Testando LAMP no Debian

Para começar, criaremos e preencheremos um banco de dados de amostra. A seguir, usaremos um script PHP básico para recuperar um conjunto de registros do banco de dados no formato JSON.

Por fim, usaremos as ferramentas de desenvolvedor do Firefox para verificar a versão do Apache que está sendo usada. Embora pudéssemos descobrir essa mesma informação com.

apache2 -v

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

a razão pela qual estamos usando um script é para garantir que todos os componentes da pilha estejam funcionando corretamente quando agrupados.

Criando e preenchendo um banco de dados

Vamos entrar no prompt do MariaDB com o seguinte comando.

mysql -u root -p

e digite a senha escolhida na seção anterior.

Agora criaremos um banco de dados chamado LibraryDB da seguinte forma:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

e adicione duas tabelas chamadas AuthorsTBL e 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)
);

Por questões de segurança, criaremos uma conta especial para acessar nosso banco de dados:

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

O último passo agora consiste em preencher as tabelas com Autores e Livros:

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

Testando conexão de banco de dados com script PHP

O script PHP a seguir primeiro se conectará ao banco de dados e recuperará os registros que correspondem à consulta. Se ocorrer um erro, uma mensagem descritiva será exibida para nos dar uma dica do que está errado.

Salve o seguinte script como booksandauthors.php em /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);
?>

Altere a propriedade para www-data e adicione as permissões apropriadas:

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

Por fim, abra um navegador da web e aponte-o para a URL onde o script reside.

http://192.168.0.35/booksandauthors.php

É isso! Neste artigo, explicamos como instalar e testar a pilha LAMP no Debian 11. Se você tiver dúvidas ou comentários sobre este artigo, não hesite em nos informar usando o formulário abaixo.