Instalando LAMP em uma Instância EC2
LAMP é um acrônimo utilizado para descrever a combinação de software composta pelo sistema operacional Linux, o servidor web Apache, o sistema de gerenciamento de banco de dados MySQL e a linguagem de programação PHP. Essa configuração é amplamente utilizada para desenvolvimento e hospedagem de aplicativos web dinâmicos.
Apache é um servidor web de código aberto conhecido por sua confiabilidade e desempenho. Ele atua como um intermediário entre o cliente (navegador) e o servidor, processando solicitações HTTP e fornecendo as respostas correspondentes. O Apache oferece recursos avançados de configuração e extensibilidade, permitindo a hospedagem de múltiplos sites e a implementação de regras de redirecionamento, autenticação, segurança e muito mais.
MySQL é um sistema de gerenciamento de banco de dados relacional amplamente utilizado. Ele fornece uma estrutura robusta para armazenar e recuperar dados de forma eficiente. O MySQL suporta a linguagem SQL, permitindo a criação e manipulação de bancos de dados, tabelas, consultas e outros elementos relacionados. Com sua estabilidade, desempenho e ampla adoção, o MySQL é uma escolha popular para aplicativos web que requerem armazenamento e recuperação eficientes de dados.
PHP é uma linguagem de programação de código aberto projetada para o desenvolvimento de aplicativos web dinâmicos. Com o PHP, é possível criar páginas web interativas e funcionais, realizar operações de banco de dados, manipular arquivos, processar formulários e muito mais. O PHP é altamente compatível com o Apache e o MySQL, permitindo a criação de aplicativos web completos e escaláveis. Sua sintaxe amigável e suporte extensivo a bibliotecas tornam o PHP uma escolha popular entre desenvolvedores web.
Ao combinar o Linux como sistema operacional, o Apache como servidor web, o MySQL como banco de dados e o PHP como linguagem de programação, o LAMP oferece uma plataforma sólida e flexível para o desenvolvimento e hospedagem de aplicativos web. Essa configuração é amplamente adotada pela sua estabilidade, segurança, escalabilidade e suporte ativo da comunidade. O LAMP se tornou uma base confiável para a criação de uma variedade de aplicativos web, desde sites simples até sistemas complexos e dinâmicos.
Iniciando a instalação
Se você estiver utilizando Fedora, CentOS ou Red Hat Enterprise este outro artigo pode ser muito útil: https://marcomapa.com/artigos/instalar-servidor-apache-mysql-e-php-lamp-no-linux-fedora-red-hat-e-centos/
Agora utilizando o Amazon Linux 2023, será necessário alguns passos diferentes que serão mostrados à seguir.
1-) Conecte-se na sua Instância EC2 por SSH.
Caso tenha dúvidas, este artigo pode ser útil: https://marcomapa.com/artigos/acessando-uma-instancia-ec2-por-ssh/
2-) Atualize o sistema com o comando:
sudo dnf update -y
3-) Vamos iniciar instalando o Apache e PHP com os drivers para MySQL dos pacotes disponibilizados pela AWS:
sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
4-) Para o MySQL vamos utilizar o MariaDB:
sudo dnf install mariadb105-server
5-) Vamos iniciar o Apache:
sudo systemctl start httpd
6-) Agora vamos habilitá-lo para iniciar automaticamente sempre que a instância for reiniciada:
sudo systemctl enable httpd
7-) Podemos conferir o status do Apache executando:
sudo systemctl is-enabled httpd
8- ) Adicionaremos permissão para que o user [ec2-user]* possa manipular os arquivos:
sudo usermod -a -G apache ec2-user
*-) Caso você tenha alterado o user de utilização da instância, altere [ec2-user] para o novo nome.
9-) Para surtir efeito, é necessário deslogar (exit) e reconectar à Instância.
Testando o Apache
10-) Por padrão, o diretório inicial do Apache está disponível em [/var/www/html]:
cd /var/www/html
11-) Crie um arquivo do tipo php.info com o seguinte comando:
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
a-) Caso retorne a mensagem: “Permission denied”, Refaça os passos nº8 e 9
12-) Com o arquivo criado, pode-se ver o resultado acessando pelo computador, ou celular, o endereço: http://ip.de.sua.instancia/phpinfo.php
Sucesso !! Temos apresentada a tela com as configurações de nosso PHP. Por questões de segurança, após validar o funcionamento do servidor, remova este arquivo com o comando.
rm /var/www/html/phpinfo.php
Configurando o MySQL
13-) Inicie o MariaDB:
sudo systemctl start mariadb
14-) Por padrão, a instalação do MySQL acarreta em liberar funções úteis nas etapas de desenvolvimento e testes, mas que comprometem a segurança no ambiente de produção. Visando evitar isso, faremos uso da instalação com a opção [mysql_secure_installation] disponivel no MariaDB e que inibe vulnerabilidades de uma instalação default:
sudo mysql_secure_installation
a-) O prompt que surge, solicitará a senha atual do usuário root do MySQL. Como ainda não foi definida, apenas pressione Enter;
b-) Digite Y para definir uma senha,
(se precisar de ajuda p/ criar a senha, este link pode ser útil: https://www.marcomapa.com/gerador_senha.php);
c-) Digite Y para remover contas anônimas;
d-) Digite Y para desabilitar acesso remoto ao root login;
e-) Digite Y para remover bancos de testes;
f-) Digite Y para recarregar as tabelas de privilégios e salvar suas alterações;
15-) Configurando para que o MariaDB inicie automaticamente após reinicializações:
sudo systemctl enable mariadb
Maravilha!! Temos instalados todos os serviços pertencentes ao LAMP.
No próximo tutorial, aprenderemos a configurar o phpMyAdmin (https://marcomapa.com/artigos/instalando-o-phpmyadmin-em-uma-instancia-ec2/).