quarta-feira, 7 de outubro de 2015

Como instalar o LLMP (Linux, Lighttpd, MySQL e PHP) no Ubuntu

Nota do tradutor: este texto é uma tradução do tutorial da Digital Ocean, empresa de VPS em cloud com preços bem baratos. Cadastre-se nela pelo meu link e receba US$ 10 de créditos! Dá para aproveitar bastante, pois os planos lá começam em US$ 5!
Inscreva-se pelo meu link de afiliado para obter o crédito de $10 dólares (eu só ganho um bônus se você gostar do serviço e continuar com ele, senão não ganho nada).
O tutorial é isento e funciona em praticamente qualquer sistema, até mesmo uma instalação local do Ubuntu. Dica: eu andei fazendo tutoriais de servidores Linux no Explorando com instalação em máquina virtual para você testar sem erros, dê uma conferida:
http://www.explorando.com.br/servidores-linux/
Mais dicas para quem tem blog ou site: http://www.explorando.com.br/categoria/blogueiros

Decidi traduzir para expor a prática na tradução. Se precisar traduzir textos técnicos referentes a sistemas operacionais do inglês para português, você pode me contatar em marcos@viamep.com.

Como instalar o LLMP (Linux, Lighttpd, MySQL e PHP) no Ubuntu

Autor: danny.sipos (veja o artigo original)
Traduzido para o português por Marcos Elias Picão

Sobre o Lighttpd


O Lighttpd é um servidor web open source usado por muitos sites no mundo que foca em desempenho aprimorado e baixo consumo de memória. Junto com o popular servidor de bancos de dados MySQL e a linguagem de scripts dinâmicos para servidores PHP, o Lighttpd é uma forte alternativa ao LAMP, este famoso por ser poderoso porém com alto consumo de recursos.

Este tutorial mostrará como instalar o Lighttpd, PHP e MySQL de forma rápida para você ter seu servidor cloud rodando. Para isso, ele assume que você já tem um VPS com Ubuntu com privilégios de root. Para encontrar mais informações sobre o que isto significa você pode consultar este tutorial (link em inglês), explicando como iniciar.

Instalando o Lighttpd


Você pode instalar o Lighttpd rodando o seguinte comando:

sudo aptitude install lighttpd

Agora se você entrar no seu endereço IP pelo navegador, já poderá ver a página inicial de exemplo do Lighttpd:

http://198.199.50.50/

Nesta página você tem algumas informações importantes sobre as configurações mais úteis do Lighttpd, como os scripts GCI, arquivos de log, etc. Se você estiver acostumado ao Apache, ficará feliz em saber que a pasta padrão para documentos também é a /var/www (com a página inicial padrão configurada para index.html) e os arquivos de configuração podem ser encontrados em /etc/lighttpd.

O arquivo de configuração principal do lighttpd é o /etc/lighttpd/lighttpd.conf. Se você abri-lo, poderá ver algumas diretivas importantes:

nano /etc/lighttpd/lighttpd.conf

No bloco seguinte você pode ver os módulos carregados pelo Lighttpd:

server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
#       "mod_rewrite",
)

Aqui você pode especificar outros módulos que deseja que sejam carregados pelo VPS. Mas tome cuidado, já que a ordem na qual são listados é muito importante. Revise esta página de ajuda para mais informaçõs.

Abaixo, você pode configurar a pasta de documento padrão para o servidor cloud (se /var/www não for ideal para você), o usuário e grupo do servidor que irá operar o Lighttpd, os arquivos index e outras configurações.

Instalando o PHP


O Lighttpd requer o PHP FastCGI para configurar o PHP. Adicionalmente você precisará instalar o pacote php-mysql para poder usar o MySQL. Para instalar ambos, você pode rodar o seguinte comando:

sudo aptitude install php5-cgi php5-mysql

Para permitir que o PHP interaja com o VPS, ative o módulo dele rodando os seguintes comandos:

sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php

Similar ao Apache, estes comandos criarão links simbólicos (como atalhos) dos arquvios na pasta /etc/lighttpd/conf-enabled/ para os arquivos da pasta /etc/lighttpd/conf-available/.

Agora você pode prosseguir e recarregar o Lighttpd para que as alterações tenham efeito:

sudo service lighttpd force-reload

Como de costume, para testar se o PHP está funcionando, crie um arquivo PHP vazio e chame a função phpinfo() nele. Crie o arquivo:

nano /var/www/info.php

E cole o seguinte código:

<?php phpinfo(); ?>

Salve, saia do arquivo e acesse-o pelo navegador. Você deverá ver a informação sobre o PHP instalado no seu VPS, seus módulos, etc. Você também verá que o módulo php-mysql está instalado, então você está pronto para prosseguir com a instalação do próprio MySQL.

Instalando o MySQL


Finalmente, instale o servidor de banco de dados MySQL, rodando o seguinte comando:

sudo aptitude install mysql-server

Você será convidado a criar uma senha para o usuário root do MySQL. Ative com o seguinte comando:

sudo mysql_install_db

E então rode o script de instalação segura:

sudo /usr/bin/mysql_secure_installation

Forneça a senha de root que você acabou de configurar (ou deixe vazia, se não tiver configurado uma) e você será convidado a alterá-la. Fique livre para escolher Não (No) e continue.

Depois disso, é recomendado escolher Sim (Yes) para as perguntas seguintes sobre remoção das bases de dados e usuários, e remoção dos privilégios sobre os bancos de dados para os usuários anônimos.

Feito isso está completo! Você pode começar a usar seu novo servidor web baseado no LLMP.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Extra: configurando Virtual Hosts no Lighttpd

Daqui para baixo o texto é meu (Marcos Elias), expandindo o artigo original:

Este texto abordou a instalação padrão do Lighttpd, sem virtual hosts (o servidor responde com uma única pasta de site). Para configurar virtual hosts e hospedar vários sites no mesmo servidor, coloque entradas como essas ao arquivo de configuração dele (/etc/lighttpd/lighttpd.conf):

#SITE explorando
$HTTP["host"] =~ "www\.explorando\.com\.br" {
        server.document-root = "/var/www/html/explorando.com.br"
        server.errorlog = "/var/log/lighttpd/expwww-erro.txt"
        accesslog.filename = "/var/log/lighttpd/expwww-acesso.txt"
        server.error-handler-404 = "/index.php"
}

#SITE explorando www2
$HTTP["host"] =~ "www2\.explorando\.com\.br" {
        server.document-root = "/var/www/html/b2evolution/blogs"
        server.errorlog = "/var/log/lighttpd/expwww2-erro.txt"
        accesslog.filename = "/var/log/lighttpd/expwww2-acesso.txt"
        server.error-handler-404 = "/index.php"
}

Os links permanentes do Wordpress funcionam com o Lighttpd?

O server.error-handler-404 apontei para o index.php para que os links permanentes do Wordpress pudessem funcionar, já que o Lighttpd não suporta o .htaccess do Apache. Se você não usar Wordpress, coloque para algum arquivo específico de erro 404 ou deixe sem esse comando.

Eu tive problemas com várias instalações do Wordpress em subpastas (já que a página de erro vale para todas as subpastas), mas para uma instalação só na raiz do domínio ou subdomínio, fazer isso foi super tranquilo. Uma outra questão que pode ficar é com relação ao código de retorno. Nos meus testes o Wordpress retornou o código 200 (OK), não 404 (NOT FOUND), para as páginas existentes. Então não houve problema nenhum em usar o server.error-handler-404 apontando para o index.php em vez de configurar as regras de rewrite (o que seria o certo, mas ainda não parei para aprender). Você pode checar o código de retorno usando o curl, por exemplo:

curl -I http://www.example.org

Ou pesquisando por "http header check" nos buscadores, existem vários sites do tipo. Você coloca a página e eles informam o cabeçalho HTTP que elas enviaram. As páginas de conteúdo jamais podem retornar 404, pois senão seriam marcadas como inexistentes e excluídas dos buscadores!

Tudo funcionou mais rápido do que com o Apache, visto que o Lighttpd consome menos recursos. É ideal para hosts com pouca memória, como os planos baratos de 512 MB de RAM!