<?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>Gustavo Henrique.net &#187; virtualhost</title>
	<atom:link href="http://www.gustavohenrique.net/brogui/tag/virtualhost/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gustavohenrique.net/brogui</link>
	<description>Só mais um blog com Wordpress</description>
	<lastBuildDate>Tue, 29 Jun 2010 00:00:51 +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>Configurando Apache para trabalhar com Django e PHP</title>
		<link>http://www.gustavohenrique.net/brogui/2009/01/servidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi/</link>
		<comments>http://www.gustavohenrique.net/brogui/2009/01/servidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 14:20:51 +0000</pubDate>
		<dc:creator>gustavohenrique</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_wsgi]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[virtualhost]]></category>

		<guid isPermaLink="false">http://www.gustavohenrique.net/brogui/?p=54</guid>
		<description><![CDATA[Introdução
Como primeiro artigo do ano, vou mostrar de forma bem rápida como configurar o Apache no Linux para trabalhar com Django e com PHP ao mesmo tempo. Para tal, foi usada a instalação padrão do Apache2 com PHP5 do Ubuntu no servidor de desenvolvimento.
O mod_wsgi é um módulo para o Apache que permite executar aplicações [...]]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>Como primeiro artigo do ano, vou mostrar de forma bem rápida como configurar o Apache no Linux para trabalhar com Django e com PHP ao mesmo tempo. Para tal, foi usada a instalação padrão do Apache2 com PHP5 do Ubuntu no servidor de desenvolvimento.<br />
O mod_wsgi é um módulo para o Apache que permite executar aplicações web escritas em Python. Trata-se de uma alternativa ao mod_python e ao FastCGI.<br />
<span id="more-54"></span></p>
<h2>Instalação</h2>
<p>O primeiro passo é instalar o mod_wsgi. No meu caso instalei a partir do repositório do Ubuntu, via apt-get:<br />
<code>root@notebook:~# apt-get install libapache2-mod-wsgi</code><br />
Nesse exemplo vamos utilizar o diretório padrão do Apache (<code>/var/www</code>) para hospedar os projetos feitos em Django e PHP. Abaixo a estrutura de diretório utilizada:<br />
<code><br />
+ /var/www/<br />
+--+ meusite/<br />
     +-- apps_wsgi/<br />
     |   +-- djangosite/<br />
     +-- www/<br />
</code></p>
<p>var/www &#8211; Diretório padrão do Apache<br />
meusite &#8211; Diretório do projeto<br />
apps_wsgi &#8211; Diretório de projetos feitos em Django<br />
djangosite &#8211; Projeto em Django, criado com o django-admin<br />
www &#8211; Diretório de arquivos PHP</p>
<p>Antes de criarmos o VirtualHost, é preciso configurar o <code>/etc/hosts</code>. Vamos atribuir um IP de loopback uma vez que o Apache está sendo executado na máquina local que é um ambiente de desenvolvimento.<br />
Segue abaixo o conteúdo do <code>/etc/hosts</code> já alterado. A primeira coluna é o IP do servidor virtual, a segunda é o hostname e a terceira é um alias para o hostname.<br />
<code><br />
gustavo@notebook:~# cat /etc/hosts<br />
127.0.0.1 localhost     notebook<br />
127.0.0.2 www2.meusite.com.br meusite<br />
</code><br />
Reparem que não configurei o hostname como www.meusite.com.br, pois senão o Apache responderia à toda requisição feita para essa URL, logo não conseguiríamos acessar o site na web. Se testarmos dar um ping para <code>meusite</code> vamos obter uma resposta sem perda de pacotes.</p>
<p>O próximo passo é criar um VirtualHost para nosso projeto. Com VirtualHost é possível hospedar vários sites no Apache, cada um sendo representado por um nome. Vamos criar nosso VirtualHost após a última linha do arquivo de configuração <code>/etc/apache2/sites-enabled/000-default</code> do Apache:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">WSGIRestrictStdout Off
&lt;virtualHost www2.meusite.com.br&gt;
  LimitInternalRecursion 1000
  ServerName meusite
  DocumentRoot /var/www/meusite/www/
&nbsp;
  ErrorLog /var/www/meusite/error.log
  LogLevel warn
&nbsp;
  &lt;directory &quot;/var/www/meusite/www/&quot;&gt;
    Order allow,deny
    Allow from all
  &lt;/directory&gt;
&nbsp;
  AddHandler wsgi-script .wsgi
  #WSGIScriptAlias /meusite/ &quot;/var/www/meusite/www/meusite.wsgi&quot;
  &lt;directory &quot;/var/www/meusite/apps_wsgi/&quot;&gt;
    AllowOverride FileInfo
    Options ExecCGI MultiViews FollowSymLinks
    MultiviewsMatch Handlers
    Order deny,allow
    Allow from all
  &lt;/directory&gt;
&lt;/virtualHost&gt;</pre></div></div>

<p>Então agora criamos o arquivo <code>/var/www/meusite/www/meusite.wsgi</code> com o seguinte conteúdo:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span>
<span style="color: #dc143c;">sys</span>.<span style="color: black;">path</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/var/www/meusite/apps_wsgi'</span><span style="color: black;">&#41;</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">environ</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'DJANGO_SETTINGS_MODULE'</span><span style="color: black;">&#93;</span>=<span style="color: #483d8b;">'meusite.settings'</span>
<span style="color: #ff7700;font-weight:bold;">import</span> django.<span style="color: black;">core</span>.<span style="color: black;">handlers</span>.<span style="color: black;">wsgi</span>
application = django.<span style="color: black;">core</span>.<span style="color: black;">handlers</span>.<span style="color: black;">wsgi</span>.<span style="color: black;">WSGIHandler</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>E para finalizar, vamos criar um arquivo <code>.htaccess</code> dentro do <code>DocumentRoot</code>. Esse arquivo utiliza o <code>mod_rewrite</code> do Apache para sobrescrever URLs. Nesse exemplo o <code>.htaccess</code> verifica todas as requisições feitas ao servidor, e caso não exista o arquivo dentro do diretório <code>www</code>, quem assume o controle é o Django.<br />
<code><br />
$ cat /var/www/meusite/www/.htaccess<br />
RewriteEngine On<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ /var/www/meusite/www/meusite.wsgi/$1 [QSA,PT,L]<br />
</code></p>
<h2>Conclusão</h2>
<p>Para testar, crie o arquivo <code>/var/www/meusite/www/info.php</code> contendo a seguinte linha:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Agora tente acessa a URL <code>http://www2.meusite.com.br/info.php</code> e será exibida na tela informações sobre o ambiente web instalado na máquina. Agora se tentar acessar um arquivo que não existe, tipo <code>http://www2.meusite.com.br/qualquercoisa</code>, o <code>.htaccess</code> redirecionará a requisição para o arquivo <code>urls.py</code> do projeto feito em Django.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Compartilhe esse artigo</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;submitHeadline=Configurando+Apache+para+trabalhar+com+Django+e+PHP&amp;submitSummary=" rel="nofollow" title="Adicionar ao&nbsp;Buzz"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/buzz.png" title="Adicionar ao&nbsp;Buzz" alt="Adicionar ao&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;title=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Del.icio.us"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/delicious.png" title="Adicionar ao&nbsp;Del.icio.us" alt="Adicionar ao&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;title=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;digg"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/digg.png" title="Adicionar ao&nbsp;digg" alt="Adicionar ao&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F" rel="nofollow" title="Adicionar ao&nbsp;Facebook"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/facebook.png" title="Adicionar ao&nbsp;Facebook" alt="Adicionar ao&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;title=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Google Bookmarks"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/google.png" title="Adicionar ao&nbsp;Google Bookmarks" alt="Adicionar ao&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;bm_description=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Mister Wong"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Adicionar ao&nbsp;Mister Wong" alt="Adicionar ao&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;T=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Netscape"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/netscape.png" title="Adicionar ao&nbsp;Netscape" alt="Adicionar ao&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;title=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;reddit"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/reddit.png" title="Adicionar ao&nbsp;reddit" alt="Adicionar ao&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;title=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Stumble Upon"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Adicionar ao&nbsp;Stumble Upon" alt="Adicionar ao&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F" rel="nofollow" title="Adicionar ao&nbsp;Technorati"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/technorati.png" title="Adicionar ao&nbsp;Technorati" alt="Adicionar ao&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F" rel="nofollow" title="Adicionar ao&nbsp;Tip'd"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/tipd.png" title="Adicionar ao&nbsp;Tip'd" alt="Adicionar ao&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Configurando+Apache+para+trabalhar+com+Django+e+PHP+@+http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F" rel="nofollow" title="Adicionar ao&nbsp;Twitter"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/twitter.png" title="Adicionar ao&nbsp;Twitter" alt="Adicionar ao&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2009%2F01%2Fservidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi%2F&amp;t=Configurando+Apache+para+trabalhar+com+Django+e+PHP" rel="nofollow" title="Adicionar ao&nbsp;Yahoo My Web"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Adicionar ao&nbsp;Yahoo My Web" alt="Adicionar ao&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.gustavohenrique.net/brogui/2009/01/servidor-compartilhado-django-php-configurando-virtualhost-no-apache-com-mod_wsgi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
