Configurando uma instância LAMP (Linux, Apache, MySQL, PHP) na Amazon Lightsail

O objetivo deste artigo é mostrar o passo a passo de como configurar uma máquina LAMP de forma simples e rápida para que você possa hospedar seu Site/Aplicativo na Nuvem.

Amazon Lightsail

Apesar da Amazon oferecer o serviço EC2, muitas vezes você precisa de um servidor simples de configurar para hospedar sites leves e que não será necessário uma infraestrutura complexa para mantê-lo. Para esses casos temos o Amazon Lightsail, opção mais barata do mercado, se comparado a Digital Ocean e Google Compute Engine.

1) Crie sua conta no Amazon Lightsail;
2) Efetue Logon;
3) Clique no botão “Criar instância”;
4) Na página “Crie uma instância”, selecione a localidade, dentre as disponíveis, mais próxima do seu público alvo. Eu na maioria das vezes deixo a opção padrão selecionada (Ohio, Zona A – us-east-2a);
5) No item “Selecione uma imagem de instância”, eu seleciono “Linux/Unix”;
6) Agora, “Selecione um esquema” “Somente SO”: “Amazon Linux”.

Muita gente prefere selecionar o Ubuntu; Eu prefiro a distribuição da Amazon por dois motivos: ela já vem com alguns softwares da Amazon habilitados, e por que essa Distro – segundo a própria Amazon – é otimizada para a infraestrutura da empresa o que permite que ela em determinadas situações seja até 25% mais rápida que outras distros do Linux.

7) Deixe os outros itens sem alterações, inclusive o plano de 3,50 USD por mês (primeiro mês grátis) habilitado, afinal este é o primeiro mês do seu serviço e ele ainda não precisa de uma máquina potente.

8) No item “Identifique sua instância” dê o nome para a sua máquina. Aqui darei o nome de “Teste”. Nesta opção ainda aprece “x 1”; Isso significa que você irá criar apenas uma máquina com essa configuração.

9) Clique no botão “Criar Instância” e sua nova máquina linux será criada. O Lightsail permite apenas a criação de 2 instâncias por usuário.

Amazon Linux

1) Configure o arquivo de SWAP do sistema operacional:

a) Memória Física de até 2GB ou menor: Tamanho do swap deverá ser 2x o tamanho da RAM, mas nunca menor que 32MB;
b) Entre 2GB e 32GB: swal deverá ser de 4GB + (RAM – 2GB);
c) 32GB de RAM ou mais: deverá ter o tamanho da RAM.

Use o comando DD para criar o arquivo de swap na raiz do sistema de arquivo (onde bs é o tamanho do bloco e count é o número de blocos)

sudo dd if=/dev/zero of=/swapfile bs=1k count=1000000

O parâmetro 1k define que o arquivo terá bloco de 1024 bits. E o count informa a quantidade de blocos. Sendo:

1 000 000 = 1 Gb
1 00 000 = 100 Mb
1 0 000 = 10 Mb
1 000 = 1 Mb

Atualize as permissões de leitura e escrita para arquivo de swap:

sudo chmod 600 /swapfile

Ajuste o sistema para utilizar o arquivo como swap:

sudo mkswap /swapfile

Ative o swap:

sudo swapon /swapfile

Verifique se o procedimento foi completado com sucesso:

sudo swapon -s

Habilite para que estas configurações funcionem após ser realizado o Boot do sistema:

sudo nano /etc/fstab

Adicione a linha abaixo ao final do arquivo:

 /swapfile swap swap defaults 0 0

Reinicie o sistema.

Para mais informações sobre como conigurar o swap, visite:

2) Atualize o Linux com o comando:

sudo yum update -y
sudo yum clean all
sudo yum upgrade -y

3) Instale o httpd 2.4 e o Banco de dados:

sudo yum install httpd24 mysql55-server

4) Inicialize o serviço do apache e do banco de dados:

sudo service httpd start
sudo service mysqld start

5) Configure o Apache e o Banco de dados para serem inicializados junto com o sistema operacional

sudo chkconfig httpd on
sudo chkconfig mysqld on

6) Na aba “Redes” de sua instância, procure pelas definições do Firewall e habilite a porta 80, caso ela ainda não esteja habilitada.

Apache HTTPD

Agora chegou o momento de configurar o servidor web.

1) Pare o serviço do apache:

sudo service httpd stop

2) Configure as permissões para o usuário (neste caso, o ec2-user) ao grupo do apache.

sudo usermod -a -G apache ec2-user

3) Feche o terminal e reabra-o;
4) Alterar a propriedade do grupo do /var/www e seu conteúdo para o grupo do apache:

sudo chown -R ec2-user:apache /var/www

5) Para adicionar as permissões de gravação do grupo e definir o ID do grupo nos subdiretórios futuros, altere as permissões de diretório de /var/www e de seus subdiretórios.

sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

6) Reinicialize o serviço do apache:

sudo service httpd start

Agora, ec2-user (e os outros usuários futuros do grupo apache) poderão adicionar, excluir e editar arquivos na raiz do documento Apache, permitindo que você adicione conteúdo, como um site estático ou um aplicativo PHP.

PHP

1) Instale o PHP:

sudo yum install php70

sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pecl-apcu

2) Abra o arquivo php.ini e encontre a linha “short_open_tag = Off” e modifique para “short_open_tag = On”.

3) Reinicialize o serviço do apache:

sudo service httpd restart

3) Execute o código abaixo, para gerar o arquivo “phpinfo.php” na raiz do seu servidor.

echo "<? phpinfo(); ?>" > /var/www/html/phpinfo.php

MySQL

Execute o código abaixo para definir a senha e algumas regras de segurança que podem proteger seu servidor.

sudo mysql_secure_installation

1.1) Enter current password for root (enter for none) – Digite enter, pois até o momento não foi definida a senha de root.
1.2) Set root password? – Responda “Y” para definir uma senha para o root. E digite a nova senha duas vezes.
1.3) Remove anonymous users? – Responda “Y”
1.4) Disallow root login remotely – Responda “Y” para que não seja possível se conectar remotamente ao banco de dados.
1.5) Remove test database and access to it? – Responda “Y” para remover o banco de dados de teste.
1.6) Reload privilage tables now? – Responda “Y” para que as novas permissões possam fazer efeito.

Reinicie o servidor e teste!

Referência

Para mais informações visite os links:

Deixe uma resposta

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