LAMP (MariaDB) – Debian 12 + Virtual Host + Proxy HTTP + Certificado SSL com Lets Encrypt

Fala galera!!

Vamos ver como configurar um servidor LAMP (Linux, Apache, MariaDB e PHP) + Virtual Hosts + SSL Let’s Encrypt no Debian 12 Bookworm.

1 – Instalando o MariaDB e verificando a versão instalada.

# apt install mariadb-server

# mysql –version

Se tudo ocorreu bem você pode acessar o console do MariaDB com o comando mysql (para acessar como anônimo) ou mysql -u root (para acessar como usuário root do MariaDB). Para sair digite quit.

2 – Instalando o Apache2 e verificando a versão instalada.

apt install apache2

# apache2 -v

Agora acesse o navegador e digite “localhost” ou o ip do seu servidor, no meu caso ficou http://localhost. Você deverá ver uma página como esta:

Se esta página apareceu pra você significa que seu Apache foi instalado corretamente e está tudo ok.

Algumas informações importantes sobre o Apache:

– Diretório default para hospedar paginas e sites no Debian: /var/www/html

– Arquivo de configuração: /etc/apache2/apache2.conf

– Configurações adicionais são armazenadas nos subdiretórios:

/etc/apache2

/etc/apache2/mods-enabled (para módulos)

/etc/apache2/sites-enabled (para virtual hosts)

/etc/apache2/conf-enabled

3 – Instalando o PHP.

Lembrando que o Debian 12 vem com PHP 8.x disponível nos repositórios oficiais. Vamos instalar o PHP e também o módulo para Apache com o seguinte comando:

apt install php libapache2-mod-php

Agora iremos reiniciar o Apache:

systemctl restart apache2

Verifique a versão do PHP

# php -v

Testando e obtendo detalhes sobre nossa instalação do php

Crie o seguinte arquivo e adicione o conteúdo como segue:

vi /var/www/html/info.php

<?php
phpinfo();
?>

Agora acesse novamente o endereço de seu servidor através do navegador e acrescente /info.php no final. No meu caso ficou assim http://localhost/info.php

Como você pode perceber o PHP está instalado e rodando corretamente. Você pode observar também todos os módulos que estão habilitados no PHP. Note que ainda não temos o MySQL aparecendo aí.

4 – Obtendo suporte ao MariaDB no PHP e instalando módulos adicionais.

Instale os seguintes pacotes:

apt install php-mysql

# apt install php-curl php-gd php-intl php-pear php-imagick php-imap php-mcrypt php-memcache php-pspell php-snmp php-sqlite3 php-tidy php-xmlrpc php-xml php-zip php-cli php-apcu

Você pode pesquisar por outros módulos PHP com o comando:

aptitude search php

ou

# apt search php

Agora reinicie o Apache:

systemctl restart apache2

Dica: melhore a velocidade de suas páginas com o APCu. APCu é um free PHP opcode cacher que faz cache e optimiza páginas PHP. Você pode instalar através do seguinte comando:

apt install php-apcu

Reinicie novamente o Apache:

systemctl restart apache2

Acesse novamente a página de informações do PHP em http://localhost/info.php e verifique que agora aparece as informações de suporte ao mysqlnd (o que significa que temos suporte ao nosso MariaDB):

5 – Instalando o PhpMyAdmin.

O PhpMyAdmin é uma intarface web para administração de banco de dados do MySQL e MariaDB Server. Você pode fazer a instalação através do seguinte comando:

apt install phpmyadmin

Será solicitado as seguintes informações:

Web server to reconfigure automatically: <– apache2
Configure database for phpmyadmin with dbconfig-common? <– Yes

Senha MySQL da aplicação para o phpmyadmin: <- digite uma senha e confirme

Após a instalação, você poderá acessar o PhpMyAdmin inserindo no navegador o ip do seu servidor e adicionar no final /phpmyadmin. No meu caso ficou assim: http://localhost/phpmyadmin

Entre com login phpmyadmin e a senha que você cadastrou na instalação

Pronto galera. Se tudo deu certo você acaba de configurar seu servidor LAMP com MariaDB.

Verifique a versão do phpmyadmin que foi instalada com o seguinte comando:

# apt show phpmyadmin | grep -i version

Além do phpmyadmin existem muitas outras ferramentas interessantes para gerenciar seu banco de dados Mariadb. Uma delas é o Dbeaver.

Download

6 – Importante

Por padrão, após sua instalação o MariaDB não vem com as configurações básicas de  hardening.

Você pode facilmente aumentar a segurança do MariaDB usando o script mysql_secure_installation. Veja nos passos a seguir como remover permissão para usuários anônimos, desabilitar login remoto do root, e remover o banco de dados de teste aumentando assim a segurança de seu MariaDB. Para isso digite o seguinte comando em seu terminal:

# mysql_secure_installation

Configure como a seguir:

Enter current password for root (enter for none): none
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Reinicie o mariadb

# systemctl restart mariadb

É importante criar um usuário para administrar seu banco de dados:

mysql -u root

>create user claudio;
>flush privileges;

>GRANT ALL ON *.* TO claudio@localhost IDENTIFIED BY ‘123’;
>flush privileges;

>quit

Obs: Para poder criar novos bancos de dados e usuários via phpmyadmin acesse http://localhost/phpmyadmin e faça logon com user criado acima e a senha que você definiu para ele no MariaDB.

7 – Criando Hosts Virtuais

				
					# mkdir /var/www/your_domain

# vim /etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>




				
			

Agora vamos habilitar o novo site/domínio e desabilitar o site padrão que vem quando instalamos o Apache2:

				
					# a2ensite your_domain (este comando habilita seu novo site)

# a2dissite 000-default (este comando desabilita o site padrão do Apache2)
				
			

Rode o seguinte comando para se certificar de que o arquivo não contém nenhum erro de syntax:

				
					# apache2ctl configtest
				
			

E por fim vamos aplicar as configurações:

				
					# systemctl reload apache2
				
			

Vamos agora criar uma página html de teste:

				
					# vim /var/www/your_domain/index.html

<!DOCTYPE html>
<html lang='pt-br'>
<meta charset='UTF-8'>
<body>

<h1>Página de teste</h1>
<p>Está tudo ok !!!</p>

</body>
</html>
				
			

8 – Configurando Proxy HTTP  e  apontando/encaminhando para outro servidor da rede

Em alguns casos precisamos hospedar nosso site em algum outro servidor que não seja o nosso Web Server principal.  Ou seja, nosso servidor Web principal irá receber a requisição de acesso ao site e vai encaminhar para outro servidor onde o site vai estar de fato hospedado.

Para isso, primeiro habilitamos o modulo proxy_http

				
					# a2enmod proxy_http
				
			

Depois vamos criar o arquivo de configuração do site:

				
					# vim /etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
         ServerName your_domain
         ProxyPreserveHost on
         ProxyPass / http://ip_outro_server/
         TransferLog ${APACHE_LOG_DIR}/your_domain.log
</VirtualHost>
				
			

Agora habilite o novo site e depois restart o Apache:

				
					# a2ensite your_domain

# systemctl restart apache2
				
			

9 – Certificado de seguranla SSL com Let’s Encrypt

Vamos agora ver como utilizar o Let’s Encrypt para criar e aplicar um certificado de segurança válido e gratuito em nosso site

				
					# apt install certbot python3-certbot-apache
				
			

Podemos criar certificados para domínios e também subdomínios de forma bem simples. Veja o exemplo abaixo:

				
					# certbot --apache -d example.com -d www.example.com
				
			

Os certificados Let’s Encrypt são válidos por 90 dias somente mas o pacote certbot que instalamos adiciona um script de renovação em /etc/cron.d. Este script é executado duas vezes por dia e renovará automaticamente qualquer certificado dentro de trinta dias após a expiração.
Para testar o processo de renovação, você pode fazer uma simulação com o certbot:

				
					# certbot renew --dry-run
				
			

Ou simplesmente fazer uma atualização manualmente

				
					# certbot renew
				
			

Você também pode criar seu próprio agendamento com o crontab

				
					# crontab -e

30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
				
			

certbot -h para mais informações

Para testar o seu certificado acesse o SSL Labs Server Test
https://www.ssllabs.com/ssltest/

E é isso aí galera, espero que tenham curtido este tutorial.

Não esqueçam de deixar seus comentários e nos ajudar compartilhando este post.

Um abraço a todos!

TutorLinux

www.esperanca.com.br

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Social Share Buttons and Icons powered by Ultimatelysocial
error

Curtiu nosso site? Por favor, compartilhe :)

RSS
Rolar para cima