1 de mai de 2010

Lighttpd e codificação padrão

Passei um tempo tentando configurar Lighttpd + eRuby no Ubuntu e dava problema com a codificação.

Tentei setar no lighttpd.conf um mimetype, mas não dava certo. Então, googlando, achei essa solução.

Você precisa especificar a codificação para o eRuby, de forma que ele já repasse para o Lighttpd codificado corretamente.




Crie este arquivo como /usr/bin/eruby_mod
#!/usr/bin/env ruby
require 'pathname'
exec("#{Pathname.new(__FILE__).dirname}/eruby -C utf-8 #{ARGV.join(' ')}")


Lembrando que você pode alterar a codificação de utf-8 para a que você quiser.

Lembre-se de dar permissão de execução ao arquivo.

Feito isso, vá no arquivo de configuração do Lighttpd /etc/lighttpd/lighttpd.conf e adicione (ou modifique se já houver) isto:

cgi.assign = ( ".rhtml" => "/usr/bin/eruby_mod" )


Pronto. Reinicie o Lighttpd e já deve estar funcionado a codificação correta.


O motivo é que Lighttpd não gosta de ter parâmetros na linha de comando, então eu precisava de um anexador na execução do eRuby.

Fonte