= CherryPy com mod_WSGI =
Esta "receita de bolo" ensina passo a passo como configurar o servidor web Apache para executar aplicações em CherryPy.
== Introdução: ==
De acordo com com o servidor de hospedagem [[http://www.locaweb.com.br|LocaWeb]] a pricipal vantagem de se usar mod_WSGI e não mod_Python, como a maioria das empresas de hospedagem, é a diminuição do tráfego de dados pois o mod_WSGI carrega toda a aplicação na memória do servidor assim ele transmite mais rápido e consumindo menos banda. Mas em desvantagem é que ocupa muita memória o que se torna um problema para os servidores de hospedagem.
Recomendo que instale o mod_WSGI somente para testes em máquinas locais pois o CherryPy já possui um servidor embutido assim você poupa um pouco de memória.
Apesar de que os softwares foram utilizados sobre plataforma Win32 nada impede a configuração em Linux ou outra plataforma pois a configuração é a mesma o que diferencia é só o processo de instalação.
== Ferramentas Utilizadas (Windows): ==
* Interpretador: Python 2.5.4
* Servidor Web: Apache 2.2.11 (win32)
* Módulo WSGI para Apache: mod_wsgi 2.0
* Framework web para Python: CherryPy 3.1.1
Presumamos que você já tenha o [[http://www.apache.org|Apache]] instalado e o [[http://code.google.com/p/modwsgi/|módulo do WSGI]] compilado caso não tenha recomendo a instalação do [[http://www.apachefriends.org/pt_br/xampp.html|XAMPP]] pois ele já vem tudo que é preciso. O mod_WSGI pode ser encontrado em http://code.google.com/p/modwsgi/ lá à links dos binários para Windows.
== Primeiro Passo - Carregar Módulo ==
Certifique-se que o mod_wsgi.so esteja na pasta padrão de módulos do apache, geralmente existe uma pasta nomeada como "module" dentro da pasta onde se encontra o executável do Apache (ex.: c:\xampp\apache\modules) é lá que ele deve ficar.
Abra o arquivo principal de configuração do Apache "httpd.conf" no seu editor favorito e localize a linha "LoadModule" e após a última linha que contenha esta instrução coloque:
{{{
}}}
{{{
LoadModule wsgi_module modules/mod_wsgi.so
}}}
Esta instrução é vital para que o módulo possa ser carregado pelo Apache.
== Segundo Passo - Dando Permissões de Acesso ==
Caso sua aplicação se encontre no diretório root do servidor (ex.: c:/apache/htdocs; /home/public_html; etc.) pule para o terceiro passa. Mas por motivos de segurança nunca as coloque nesses locais.
Ainda no httpd.conf adicione uma linha em branco no final do arquivo e adicione a seguinte instrução:
{{{