LightTPD + PHP5 no Debian (Part 1: mod_fastcgi)

Tags: , , — September 7, 2008 @ 11:17 pm

Já há algum tempo tenho curiosidade de testar outros servidores http como alternativa ao nosso conhecido Apache, e um que sempre me chamou atenção é o LightTPD, com a promessa de ser mais rápido e ter um consumo bem menor de memória e recursos do sistema.

Este fim de semana resolvi finalmente me aventurar e tentar migrar do Apache para o LightTPD. Apesar de ser uma servidor web bem mais simples que o Apache, as diferenças na configuração deste podem ser uma dor de cabeça para quem está acostumado com as do Apache, principalmente em se tratando do mod_rewrite e Virtual Hosts, por isso vou separar a post em quatro partes:

  1. Instalação básica do LightTPD com mod_fastcgi e utilização com PHP5;
  2. Configuração básica de Virtual Hosts, mod_userdir, e mod_evhost, possibilitando configuraçãode virtual hosts por usuários, por exemplo;
  3. Utilização do mod_rewrite em comparação com o Apache, e configuração deste para “urls limpas” com CakePHP Framework (aplicável também para outros Frameworks e CMSs);
  4. Benchmark. Testes de performance do LightTPD em comparação com o Apache.

Começando com a Parte 1, abordada neste post.

Primeiramente instale o lighttpd, e php5-cgi, juntamente com os módulos PHP que desejar (php5-gd, php5-mysql, etc). Diferente do Apache, o Lighttpd não possui um módulo próprio para executar scripts php, assim, estes serão tratados a partir do módulo fastcgi que, na prática, é mais rápido que o apache mod_php, e não interfere em seu modo de uso.

# aptitude install lighttpd php5-cgi

Se o servidor Apache, ou outro servidor web, estiver sendo executado na porta 80, a instalação gerará um erro e ficará incompleta, pois o apt tentará iniciar o LightTPD na porta 80, que já estará sendo utilizada.

A solução para isto é parar momentaneamente o Apache (/etc/init.d/apache2 stop) , instalar o LightTPD, e alterar a sua porta, para só então reinciar o Apache (/etc/init.d/apache2 start).

Para alterar a porta utilizada pelo LightTPD, basta editar o arquivo /etc/lighttpd/lighttpd.conf e descomentar e alterar a porta, mais ou menos na linha 70: server.port = 81.

Se você não parou o servidor Apache e recebeu um erro na instalação, basta alterar a porta do lightTPD como mostrado acima, e reiniciar a instalação (basta rodar o aptitude install novamente) .

LightTPD Placeholder pageApós concluída a instalação, você deverá ver a página teste do LightTPD acessando http://127.0.0.1/ (ou http://localhost/)  no seu navegador, agora só falta ativar o suporte para PHP5.

Assim como para o Apache, a instalação padrão do LightTPD no Debian coloca as configurações do servidor web em arquivos separados. O arquivo de configuração principal do LightTPD, como já vimos, fica em /etc/lighttpd/lighttpd.conf. Configurações adicionais ficam em /etc/lighttpd/conf-available, e devem sercriados links simbólicos para estes em /etc/lighttpd/conf-enabled para que estes sejam carregados. Assim, vamos habilitar o módulo fastcgi:

# cd /etc/lighttpd/conf-enabled
# ln -s ../conf-available/10-fastcgi.conf .
#

Depois disto edite o arquivo /etc/php5/cgi/php.ini procure e altere a diretiva cgi.fix_pathinfo (linha 533, mais ou menos) de 0 para 1. Esta é uma configuração auxiliar paradar suporte as variávels PATH_INFO e PATH_TRANSLATED, que originalmente não estão disponíveis para o PHP em modo CGI (alteração necessária para alguns Frameworks, como o CakePHP, funcionarem).

Após isto basta reiniciar o LightTPD (/etc/init.d/lighttpd restart) e começar a rodar seus scripts PHP normalmente, aproveitando  o ganho de performance e a economia de memória.

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Related posts

1 Comment »

  1. […] com os tutoriais para instalação e uso do LightTPD, vou mostrar agora como utilizar os módulos para User Directories e Virtual […]

    Pingback by SamuraiDio » LightTPD + PHP5 no Debian (Part 2: mod_evhost) — September 13, 2008 @ 3:47 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment