<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SamuraiDio &#187; lighttpd</title>
	<atom:link href="http://blog.diovani.com/tag/lighttpd/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.diovani.com</link>
	<description>GNU/Linux &#124; PHP &#124; JavaScript</description>
	<lastBuildDate>Fri, 28 May 2010 00:11:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>LightTPD + PHP5 no Debian (Part 2: mod_evhost)</title>
		<link>http://blog.diovani.com/2008/09/13/lighttpd-php5-no-debian-part-2-mod_evhost/</link>
		<comments>http://blog.diovani.com/2008/09/13/lighttpd-php5-no-debian-part-2-mod_evhost/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 18:46:59 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[virtual hosts]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/2008/09/13/lighttpd-php5-no-debian-part-2-mod_evhost/</guid>
		<description><![CDATA[Continando com os tutoriais para instalação e uso do LightTPD, vou mostrar agora como utilizar os módulos para User Directories e Virtual Hosts.
Para quem está acostumado com o Apache, o mod_userdir não se diferencia muito, simplesmente criando um Document Root na $HOME de cada usuário que pode ser acessado por http://hostname/~username. Já os Virtual Hosts [...]]]></description>
			<content:encoded><![CDATA[<p>Continando com os <a href="http://blog.diovani.com/2008/09/07/lighttpd-php5-no-debian-part-1-mod_fastcgi/">tutoriais para instalação e uso do LightTPD</a>, vou mostrar agora como utilizar os módulos para <em>User Directories</em> e <em>Virtual Hosts.</em></p>
<p>Para quem está acostumado com o Apache, o <em>mod_userdir</em> não se diferencia muito, simplesmente criando um Document Root na $HOME de cada usuário que pode ser acessado por <em>http://hostname/~username</em>. Já os <em>Virtual Hosts </em>tem uma sintaxe completamente diferente e, pelo meu ponto de vista (embora eu não tenha estudado os <em>vhosts</em> do Apache muito a fundo), bem mais flexível.</p>
<p align="center"><strong>Habilitando o <em>mod_userdir</em>.</strong></p>
<p>A instalação padrão do LightTPD no Debian (<em># aptitude install lighttpd</em>) já vem com os principais módulos, incluindo o <em>mod_userdir</em>, e também cria um arquivo de configuração para este em <em>/etc/lighttpd/conf-avaiable/</em>. Assim, só o que precisamos é criar um link simbólico para <em>/etc/lighttpd/conf-enabled/</em>:</p>
<pre># cd /etc/lighttpd/conf-enabled/
# ln -s ../conf-available/10-userdir.conf .</pre>
<p>Pronto! Após isso basta reiniciar o LightTPD (<em>/etc/init.d/lighttpd restart</em>) e acessar os diretórios de usuários com <em>http://hostname/~username</em>.</p>
<p align="center"><strong>Usando condições para criar <em>Virtual Hosts</em></strong></p>
<p>Para criar <em>Virtual Hosts</em> no LightTPD podemos usar diversas maneiras. A primeira seria sequer utilizando um módulo adicional, mas apenas uma condição no <em>lighttpd.conf</em>, quando se deseja simplesmente criar um <em>Virtual Host</em> para um domínio específico acessando um <em>Document Root</em> alternativo, o que, inclusive, é o mais comum:</p>
<pre>$HTTP["host"] == "news.example.org" {
  server.document-root = "/var/www/servers/news2.example.org/pages/"
}</pre>
<p>Aqui temos uma grande vantagem do LightTPD, que é a possibilidade de utilizarmos facilmente variáveis na configuração. A variável <em>$HTTP["host"]</em> obtém o domínio atual que está sendo acessado no servidor e compara com a constante a seguir, se esta comparação for verdadeira, as definições dentro do bloco {} serão usadas. Os operadores de comparação que podem ser utilizados são:</p>
<pre>==
    igualdade de strings
!=
    diferença de strings (NOT)
=~
    expressão regular estilo perl (LIKE)
!~
    diferença de expressão regular estilo perl (NOT LIKE)</pre>
<p>No exemplo acima, quando o domínio acessado for <em>news.example.org</em> o <em>Document Root</em> usado será <em>/var/www/servers/news2.example.org/pages/</em>. Este seria o modo mais básico de utilizarmos diversos <em>Document Roots</em>, uma espécie de <em>fake vhost</em>.</p>
<p align="center"><strong>Utitizando <em>mod_simple_vhost</em></strong></p>
<p>Outra maneira é utilizando o <em>mod_simple_vhost</em>, recomendado quando se quer agrupar os <em>Document Roots</em> sub um diretório específico. Para habilitar o módulo <em>Simple VHosts</em>, primeiramente cria um link simbólico para o arquivo de configuração, assim como fizemos com o <em>mod_userdir</em>:</p>
<pre># cd /etc/lighttpd/conf-enabled/
# ln -s ../conf-available/10-simple-vhost.conf .</pre>
<p>Depois disso edite o arquivo *.conf.</p>
<p>O <em>mod_simple_vhost</em> utiliza três parâmetros:</p>
<ul>
<li> <em>simple-vhost.server-root</em>: O diretório &#8220;pai&#8221; onde serão colocados os <em>Document Root</em>. Em nosso exemplo usaremos <em>/var/www.</em></li>
<li><em>simple-vhost.document-root</em>:<em> </em>O subdiretório que conterá os arquivos HTML, sendo o <em>Document Root</em> de cada <em>VHost</em>. Em nosso exemplo usaremos <em>html/</em>.</li>
<li><em>simple-vhost.default-host:</em> O <em>Virtual Host</em> padrão, utilizado quando não é enviado nenhum domínio (ao acessar o endereço IP do servidor, por exemplo.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;">## The document root of a virtual host isdocument-root =</span>
<span style="color: #adadad; font-style: italic;">## simple-vhost.server-root + $HTTP[&quot;host&quot;] + simple-vhost.document-root</span>
simple-vhost.server-root         = <span style="color: #7f007f;">&quot;/var/www&quot;</span>
simple-vhost.document-root       = <span style="color: #7f007f;">&quot;/html/&quot;</span>
&nbsp;
<span style="color: #adadad; font-style: italic;">## the default host if no host is sent</span>
simple-vhost.default-host        = <span style="color: #7f007f;">&quot;localhost&quot;</span></pre></div></div>

<p>O <em>mod_simple_vhost </em>procurará pelos <em>doc_root </em>usando o formato <em>simple-vhost.server-root + domínio + simple-vhost.document-root</em>. Assim, se o domínio acessado no servidor for <em>example.org</em> o <em>Document Root</em> utilizado será <em>/var/www/example.org/html</em>.</p>
<p>Utilizar o módulo <em>Simple Virtual Hosts</em> ou apenas condições vai depender de sua necessidade. Em geral, se for necessário apenas adicionarou um dois <em>Document Roots</em> alternativos utilizar condições pode ser mais simples, além de ser um módulo a menos para carregar no servidor (menos recursosnecessários), já no caso de um servidor que hospede diversos web sites de um mesmo proprietário, o módulo <em>Simple Virtual Hosts</em> poderá ser a melhor solução.</p>
<p>Porém, pode ser necessário, em alguns casos, utilizar-se diversos <em>Virtual Hosts</em> com <em>Document</em> <em>Roots</em> utilizando padrões diferentes, como <em>VHosts</em> específicos para usuários ou domínios, por exemplo. Para estes casos, podemos utilizar o módulo <em>Enhanced Virtual-Hosting.</em></p>
<p align="center"><strong>Utilizando <em>mod_evhost</em></strong></p>
<p>Diferente dos módulos anteriores, a instalação do Debian não cria um arquivo de configuração para o <em>mod_evhost</em>. Assim temos duas opções: Descomentar a linha que carrega o <em>mod_evhost</em> na seção <em>server.modules()</em> do arquivo <em>/etc/lighttpd/lighttpd.conf</em> e adicionar as configurações desejadas no final deste arquivo, ou criar um arquivo de configuração adicional.</p>
<p>Eu prefiro criar o arquivo adicional com luink simbólico, visto que fica mais fácil habilitar/desabilitara configuração rapidamente:</p>
<pre># touch /etc/lighttpd/conf-available/11-evhost.conf
# cd /etc/lighttpd/conf-enabled/
# ln -s ../conf-available/11-evhost.conf</pre>
<p>Note que criei o arquivo com o nome <em>11-evhost.conf</em>. O número (11) a esquerda do nome do arquivo é um modo de definir a ordem que os arquivos de configuração serão incluídos. Após cria-lo edite o arquivo com suas configurações desejadas, lembrando de colocar a seguinte linha para carregar o módulo <em>EVhost</em>:</p>
<pre>server.modules += ("mod_evhost")</pre>
<p>O <em>mod_evhost</em> contrói o <em>Document Root</em> baseado em um padrão contendo os caracteres curingas a seguir:</p>
<pre>%% =&gt; Caractere '%'
%0 => Nome do domínio, com sufixo (.com, .org, ...)
%1 => Sufixo do dompinio (.com, .org, ...)
%2 => Nome do domínio sem sufixo
%3 => Primeiro subdomínio
%4 => Segundo subdomínio</pre>
<p>Assim, utilizamos estes caracteres para configurar o <em>Document Root</em>, baseado no domínio acessado, adicionando o padrão ao parâmetro <em>evhost.path-pattern</em>.</p>
<pre>evhost.path-pattern = "/var/www/%0/html/"</pre>
<p>O exemplo acima, terá o mesmo efeito do nosso exemplo anterior utilizando o <em>mod_simple_vhost</em>.</p>
<p>Tanto o <em>mod_simple_vhost</em> como o <em>mod_evhost</em> podem ser utilizados em conjunto com condições, assim podemos criar um <em>Virtual Host</em> para cada usuário, acessando o diretório <em>public_html</em> dentro de sua $HOME como <em>Document Root</em>, por exemplo, ou seja, criando um <em>vhost</em> para cada <em>userdir</em> existente:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;">## load evhost module</span>
server.modules += (<span style="color: #7f007f;">&quot;mod_evhost&quot;</span>)
&nbsp;
<span style="color: #adadad; font-style: italic;">## enable per user public_html dir to be accessed by</span>
<span style="color: #adadad; font-style: italic;">## http://username.example.org</span>
$HTTP[<span style="color: #7f007f;">&quot;host&quot;</span>] =~ <span style="color: #7f007f;">&quot;<span style="color: #000099; font-weight: bold;">\.</span>example<span style="color: #000099; font-weight: bold;">\.</span>org&quot;</span> {
    evhost.path-pattern = <span style="color: #7f007f;">&quot;/home/%3/public_html/&quot;</span>
}</pre></div></div>

<p>Assim, quando alguém acessar <em>http://samuraidio.example.org</em>, o <em>Document Root</em> usado será <em>/home/samuraidio/public_html</em>.</p>
<p><em>Fonte: <a href="http://trac.lighttpd.net/trac/wiki/Docs">http://trac.lighttpd.net/trac/wiki/Docs</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2008/09/13/lighttpd-php5-no-debian-part-2-mod_evhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LightTPD + PHP5 no Debian (Part 1: mod_fastcgi)</title>
		<link>http://blog.diovani.com/2008/09/07/lighttpd-php5-no-debian-part-1-mod_fastcgi/</link>
		<comments>http://blog.diovani.com/2008/09/07/lighttpd-php5-no-debian-part-1-mod_fastcgi/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 02:17:08 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/2008/09/07/lighttpd-php5-no-debian-part-1-mod_fastcgi/</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Já há algum tempo tenho curiosidade de testar outros <a href="http://pt.wikipedia.org/wiki/Anexo:Lista_de_servidores_web">servidores http</a> como alternativa ao nosso conhecido Apache, e um que sempre me chamou atenção é o <a href="http://www.lighttpd.net/">LightTPD</a>, com a promessa de ser mais rápido e ter um consumo bem menor de memória e recursos do sistema.</p>
<p>Este fim de semana resolvi finalmente me aventurar e tentar migrar do <a href="http://httpd.apache.org/">Apache</a> para o <a href="http://www.lighttpd.net/">LightTPD</a>. 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:</p>
<ol>
<li>Instalação básica do LightTPD com mod_fastcgi e utilização com PHP5;</li>
<li>Configuração básica de Virtual Hosts, mod_userdir, e mod_evhost, possibilitando configuraçãode virtual hosts por usuários, por exemplo;</li>
<li>Utilização do mod_rewrite em comparação com o Apache, e configuração deste para &#8220;urls limpas&#8221; com CakePHP Framework (aplicável também para outros Frameworks e CMSs);</li>
<li>Benchmark. Testes de performance do LightTPD em comparação com o Apache.</li>
</ol>
<p>Começando com a Parte 1, abordada neste post.</p>
<p>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.</p>
<pre># aptitude install lighttpd php5-cgi</pre>
<blockquote><p>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.</p>
<p>A solução para isto é parar momentaneamente o Apache (<em>/etc/init.d/apache2 stop</em>) , instalar o LightTPD, e alterar a sua porta, para só então reinciar o Apache (<em>/etc/init.d/apache2 start</em>).</p>
<p>Para alterar a porta utilizada pelo LightTPD, basta editar o arquivo <em>/etc/lighttpd/lighttpd.conf</em> e descomentar e alterar a porta, mais ou menos na linha 70: <em>server.port = 81</em>.</p>
<p>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 <em>aptitude install</em> novamente) .</p></blockquote>
<p><a href="http://blog.diovani.com/wp-content/uploads/2008/09/2008-09-07_225638.png" title="LightTPD Placeholder page"><img src="http://blog.diovani.com/wp-content/uploads/2008/09/2008-09-07_225638.thumbnail.png" alt="LightTPD Placeholder page" align="right" /></a>Após concluída a instalação, você deverá ver a página teste do LightTPD acessando <em>http://127.0.0.1/</em><strong> </strong>(ou <em>http://localhost/</em>)  no seu navegador, agora só falta ativar o suporte para PHP5.</p>
<p>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 <strong><em>/etc/lighttpd/lighttpd.conf</em></strong>. Configurações adicionais ficam em <strong><em>/etc/lighttpd/conf-available</em></strong>, e devem sercriados links simbólicos para estes em <em>/etc/lighttpd/conf-enabled</em> para que estes sejam carregados. Assim, vamos habilitar o módulo fastcgi:</p>
<pre># cd /etc/lighttpd/conf-enabled
# ln -s ../conf-available/10-fastcgi.conf .
#</pre>
<p>Depois disto edite o arquivo <strong><em>/etc/php5/cgi/php.ini</em></strong> procure e altere a diretiva <strong><em>cgi.fix_pathinfo</em></strong> (linha 533, mais ou menos) de <strong><em>0</em></strong> para <strong><em>1</em></strong>. Esta é uma configuração auxiliar paradar suporte as variávels <em>PATH_INFO</em> e <em>PATH_TRANSLATED</em>, 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).</p>
<p>Após isto basta reiniciar o LightTPD (<strong><em>/etc/init.d/lighttpd restart</em></strong>) e começar a rodar seus scripts PHP normalmente, aproveitando  o ganho de performance e a economia de memória.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2008/09/07/lighttpd-php5-no-debian-part-1-mod_fastcgi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
