Pesquisa de site

Como instalar e configurar LEMP no Debian 8 (Jessie)


Um dos motivos mais comuns para configurar um sistema Linux é para hospedar um(s) site(s). De acordo com a pesquisa de fevereiro de 2016 da NetCraft.com sobre os 1 milhão de sites mais movimentados do mundo, cerca de 15,60% deles são executados em Nginx.

Juntamente com a alta probabilidade de que haja algum tipo de conteúdo dinâmico sendo servido, bem como algum tipo de back-end de banco de dados para os sites, a capacidade de um administrador configurar servidores LEMP é muito benéfico para quem procura emprego e também para empregadores!

Este tutorial irá percorrer os fundamentos da instalação e configuração de um servidor Linux (especificamente Debian 8 Jessie) para funcionar como um servidor LEMP.

O que é o servidor LEMP?

Ótima pergunta! Tal como acontece com a maioria das coisas no mundo da computação, LEMP é um acrônimo para Linux, Nginx, MySQL e PHP.

Este acrônimo é comumente usado para fazer referência a coleções de software em um servidor web. Este tutorial irá primeiro explicar como configurar o LEMP, especificamente o MySQL e o PHP.

Antes de nos separarmos dos aspectos de configuração dos sistemas, é importante conhecer o Nginx.

O que é Nginx?

O Nginx começou sua vida em 2002, quando o mundo da computação começou a perceber que sites com dez mil ou mais conexões simultâneas eram uma possibilidade muito real e, como resultado, o Nginx foi criado do zero para resolver esse problema.

Instalando e configurando MySQL e PHP

1. Esta primeira seção cobrirá o Debian como um servidor MySQL e PHP. A parte Linux do servidor LEMP já deve ser feita instalando o Debian! Porém, caso haja necessidade de um guia sobre como instalar o Debian, leia o seguinte artigo no TecMint:

  1. Instalação do Debian 8 Jessie

Assim que o Debian estiver pronto, o processo de instalação do restante do software necessário pode ser concluído com um comando rápido usando o meta-pacote ‘apt’.

apt-get install mysql-server-5.5 php5-mysql php5

Dependendo do hardware do sistema e da conexão com a Internet, esse processo pode demorar algum tempo. No momento em que este artigo foi escrito, uma nova instalação do Debian Jessie com todas as atualizações aplicadas exigia cerca de 70MB de arquivos dos repositórios (nada tão ruim considerando o que o servidor estará fazendo quando as coisas estiverem prontas)! Durante o processo de instalação, o sistema pode solicitar que o usuário defina uma senha de usuário root SQL. Isso é diferente da senha real do usuário root e, por questões de segurança, provavelmente deve permanecer diferente.

2. Assim que o apt terminar de instalar todo o software, os serviços básicos estarão instalados e funcionando. No entanto, parar aqui daria um tutorial muito curto! Então, vamos mergulhar um pouco mais na configuração de cada um dos softwares instalados começando com MySQL.

3. Após a instalação do MySQL, geralmente é recomendado que o servidor SQL tenha alguma manutenção básica feita na instalação padrão. Isso é facilmente realizado com o utilitário mysql_secure_installation.

Este comando é simplesmente executado a partir da linha de comando e solicitará que o usuário remova itens como usuários anônimos, teste bancos de dados e remova a capacidade de login remoto do usuário root no banco de dados SQL.

mysql_secure_installation

Este comando iniciará um prompt interativo que fará perguntas sobre os tópicos acima. Como o apt já solicitou uma senha de root do MySQL, essa senha precisará ser digitada para fazer quaisquer alterações. Como a senha root já foi definida, No pode ser a resposta ao prompt sobre como alterar a senha root no servidor MySQL.

4. O próximo conjunto de perguntas será em relação aos usuários anônimos, ao banco de dados de ‘teste’ e ao acesso root ao banco de dados remotamente. Normalmente é seguro responder Sim a todos esses prompts, a menos que haja um motivo específico pelo qual a configuração precisaria que uma dessas opções permanecesse intacta.

NOTA: Pode haver um erro sobre a falha na exclusão de um banco de dados chamado 'test', não se preocupe com isso, pois o banco de dados pode ou pode não existir e, independentemente disso, o script continuará a fazer o que é necessário.

Neste ponto, o MySQL está pronto para funcionar. Sem saber quais bancos de dados ou usuários serão necessários, é difícil fazer muito mais configurações. No entanto, a maioria dos sites cria automaticamente os bancos de dados e usuários necessários quando o software é instalado. No entanto, isso depende muito do software e exigiria uma rápida olhada nos arquivos README do software ou nas instruções de instalação.

5. Agora que o MySQL está configurado, vamos prosseguir e definir algumas configurações PHP básicas para este servidor específico. Embora existam inúmeras configurações que podem ser manipuladas para PHP, existem apenas algumas configurações básicas que quase sempre devem ser modificadas. O arquivo de configuração do php está localizado em /etc/php5/fpm/php.ini. Abra este arquivo com qualquer editor de texto.

nano /etc/php5/fpm/php.ini

Usando as habilidades de pesquisa do nano ctrl+w procure pela string “memory_limit ” (omitindo as aspas). Em uma instalação padrão, esta linha já estará definida como 128M, mas caso um aplicativo precise de mais, esta linha poderá ser alterada para acomodar os requisitos.

Outra opção importante a ser verificada é o “max_execution_time” e novamente por padrão será definido como 30. Caso uma aplicação exija mais, esta opção pode ser alterada. Algumas pessoas preferem também configurar o log do php em um arquivo/diretório especial. Caso isso seja um requisito, pesquise a string “error_log = ” e remova o comentário da linha removendo o ponto e vírgula que geralmente está lá por padrão.

Neste ponto, um valor para o arquivo de log pode ser adicionado ao final da linha. Certifique-se de que o caminho exista no sistema. Depois de terminar de fazer as alterações necessárias no arquivo php.ini, salve as alterações e saia do editor de texto. Neste ponto, MySQL e PHP5 estão prontos para começar a hospedar sites. Agora é hora de configurar o Nginx.

Instalando e configurando o Nginx

6. Nginx (mecanismo X) é um servidor web alternativo e muito poderoso. Esta seção deste tutorial orientará a configuração de uma página da web para o Nginx hospedar. A primeira etapa para configurar o Nginx é instalar os pacotes necessários usando o utilitário ‘apt’.

apt-get install nginx

Supondo que todas as dependências sejam satisfeitas, navegar até o endereço IP do servidor em um navegador da web deve gerar o site Nginx padrão.

NOTA: Há casos em que, após a instalação do Nginx, o servidor não é iniciado automaticamente. Se navegar para o endereço IP do servidor em um navegador da web não resultar na página abaixo, emita o seguinte comando para garantir que o Nginx seja iniciado.

service nginx start

O Nginx agora está hospedando com sucesso a página padrão. Embora a página padrão do Debian seja um site chamativo, a maioria dos usuários desejará hospedar algo personalizado.

7. As próximas etapas mostrarão como configurar o Nginx para hospedar um site diferente. O Nginx, assim como o Apache 2, possui seu próprio diretório de configurações localizado em /etc/nginx. Mude para este diretório usando o utilitário cd.

cd /etc/nginx

Para este tutorial existem vários arquivos e diretórios importantes para configurar um site usando Nginx. Os dois primeiros diretórios importantes são os diretórios ‘sites-available’ e ‘sites-enabled‘. Muito parecido com o Apache 2, o Nginx usa arquivos de configuração para cada site no diretório de sites disponíveis que, quando ativos, são vinculados simbolicamente no diretório habilitado para sites.

A primeira coisa necessária para se livrar do site padrão é remover o link simbólico em sites habilitados.

rm sites-enabled/default

8. Agora, um novo arquivo de configuração do site precisa ser criado e vinculado para que o Nginx sirva a página. A criação do arquivo de configuração do site pode ser simplificada copiando e modificando a configuração padrão dos sites.

cp sites-available/default sites-available/tecmint-test

Isso criará um novo arquivo de configuração de site para trabalhar. Abra este arquivo em um editor de texto para alterar o caminho que o Nginx servirá os arquivos.

nano sites-available tecmint-test

Dentro deste arquivo existem várias opções importantes a serem alteradas para que o Nginx sirva um site. A primeira é a linha que começa com ‘root’, pois esta linha define onde o Nginx deve servir os arquivos para este site específico.

Este tutorial deixará o padrão '/var/www/html' e simplesmente colocará os arquivos html a serem veiculados neste diretório. No entanto, certifique-se de modificar esse caminho se houver vários sites ou uma configuração personalizada neste servidor.

A próxima linha importante é a linha ‘index‘. Como este artigo é sobre a instalação do LEMP e um site pode potencialmente servir páginas php, o Nginx precisa ser informado de que a página padrão pode ser uma página php. Para fazer isso, basta adicionar ‘index.php’ ao final da lista de índice de arquivos.

Antes de habilitar o novo site, é necessário que haja algo para o Nginx servir. A página de índice padrão já existe, mas para confirmar se outro site está funcionando, vamos substituir o conteúdo da página padrão por outra coisa.

echo “It's ALIVE!” > /var/www/html/index.html

9. A próxima etapa é habilitar o novo site vinculando o arquivo de configuração recém-criado ao diretório sites-enabled. Isso é facilmente realizado usando o comando ln e recarregando a configuração do Nginx com o utilitário de serviço.

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

Neste ponto, o Nginx deve estar servindo a nova página da web ‘simples’. Isso pode ser confirmado navegando até o endereço IP do servidor por meio de um navegador da web!

Novamente, este artigo pretendia ser configurações muito simples do LEMP. A maioria dos sites exigiria configuração adicional para todas as partes envolvidas, mas as opções de configuração podem variar na casa dos milhares! Boa sorte com a configuração escolhida para hospedar sites.