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 |
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; >GRANT ALL ON *.* TO claudio@localhost IDENTIFIED BY ‘123’; |
>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
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
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
Página de teste
Está tudo ok !!!
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
ServerName your_domain
ProxyPreserveHost on
ProxyPass / http://ip_outro_server/
TransferLog ${APACHE_LOG_DIR}/your_domain.log
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
Muito bom um tutor mais completo q já vi…..