Lighttpd - Trazendo leveza ao Drupal
Hoje fui convidado pelo Fabiano (wundo) a controlar um apache compulsivo por memória.
Nunca conseguir descobrir o porquê, mas algumas vezes o apache 2 mpm prefork ( que funciona como o apache 1, sem threads ) começa a devorar memória.
Especialmente se usado com mod_php5 e drupal.
Mas antes de perder tempo demais com diagnóstico e solução do problema no apache, o FF apostou no Lighttpd. Ele funciona muito bem com php - presumivelmente, melhor que o Apache - e é assustadoramente leve e rápido.
Portanto, vou compartilhar aqui os passos principais para se usar o Lighttpd com Drupal, e economizar memória e processador.
O passo-a-passo serve para distros baseadas em debian
- Instalando o básico
sudo apt-get install lighttpd lighttpd-mod-magnet php5-cgi
- Habilitando os módulos essenciais:
cd /etc/lighttpd sudo ln -s $PWD/conf-available/10-fastcgi.conf conf-enabled/ sudo ln -s $PWD/conf-available/10-magnet.conf conf-enabled/
- Habilitando as URLs amigáveis:
- Crie o seguinte arquivo:
/etc/lighttpd/drupal.lua
- Com o seguinte conteúdo:-- little helper function
function file_exists(path)
local attr = lighty.stat(path)
if (attr) then
return true
else
return false
end
end
function removePrefix(str, prefix)
return str:sub(1,#prefix+1) == prefix.."/" andstr:sub(#prefix+2)
end
-- prefix without the trailing slash
local prefix = ''
-- the magic ;)
if (not file_exists(lighty.env["physical.path"])) then
-- file still missing. pass it to the fastcgi backend
request_uri = removePrefix(lighty.env["uri.path"], prefix)
if request_uri then
lighty.env["uri.path"] = prefix .."/index.php"
local uriquery = lighty.env["uri.query"] or ""
lighty.env["uri.query"] = uriquery .. (uriquery ~= ""and "&" or "") .. "q=" .. request_uri
lighty.env["physical.rel-path"] =lighty.env["uri.path"]
lighty.env["request.orig-uri"] =lighty.env["request.uri"]
lighty.env["physical.path"] =lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
end
end
-- fallthrough will put it back into the lighty request loop
-- that means we get the 304 handling for free. ;) - Adicione a seguinte linha ao arquivo
/etc/lighttpd/lighttpd.conf
:
# for clean urls magnet.attract-physical-path-to = ( "/etc/lighttpd/drupal.lua" )
- Crie o seguinte arquivo:
- Permita o php alocar mais memória para script quando necessário, editando o arquivo
/etc/php5/cgi/php.ini
.
Mude a diretivamemory_limit = 16M
para:memory_limit = 50M
- Agora, só falta adaptar o
/etc/lighttpd/lighttpd.conf
às suas necessidades.
Por exemplo, para definir a raiz de um determinado domínio, use:$HTTP["host"] == "www.exemplo.com.br" { server.document-root = "/var/www/www.exemplo.com.br" }
- 2912 leituras
Comentários recentes
1 ano 31 semanas atrás
2 anos 6 dias atrás
2 anos 2 semanas atrás
2 anos 16 semanas atrás
2 anos 16 semanas atrás
2 anos 18 semanas atrás
2 anos 19 semanas atrás
2 anos 19 semanas atrás
2 anos 19 semanas atrás
2 anos 19 semanas atrás