Instalando o mod wsgi Python e Configurando o Django em máquinas com Cpanel
Antes de começar, saiba que trabalhar com aplicativos fora do painel, podem ocorrer falhas. Algumas situações podem danificar a máquina, impedindo sua recuperação. Não nos responsabilizamos e nem disponibilizamos suporte para tais eventuais situações sem custo. O suporte da hospedagem, sem custo, é para os painéis de controle somente.
- Como instalar o WSGI
Baixe e compile o wsgi no SSH, como usuário root:
cd /usr/local/src/ wget http://modwsgi.googlecode.com/files/mod_wsgi-2.3.tar.gz gzip -dc mod_wsgi-2.3.tar.gz | tar xf - cd mod_wsgi-2.3 ./configure make && make install
Após compilado, terá o módulo no seguinte caminho /usr/local/apache/modules/mod_wsgi.so.
Entre no como usuário root, vá em WHM>>Service Configuration »Apache Configuration>>Include Editor.
Adicione as linhas abaixo em Pre Main Include:
LoadModule wsgi_module /usr/local/apache/modules/mod_wsgi.so AddHandler wsgi-script .wsgi
Confirme no botão Update e depois no Restart para reiniciar o Apache.
- Instalando o Django
Baixando e instalando a versão 1.4.2
cd /usr/local/src wget https://www.djangoproject.com/download/1.4.2/tarball/ tar xzvf Django-1.4.2.tar.gz cd Django-1.4.2 python setup.py install
Se ocorreu tudo OK, verá isto como última linha:
Writing /usr/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg-info
Por fim, teste assim no terminal SSH:
python -c "import django; print(django.get_version())"
Se aparecer a versão, está tudo certo, você conseguiu.
- Como integrar ao domínio
Você precisa executá-lo em um domínio/usuário. Primeiro, precisa criar seu wsgi app que irá chamar a aplicação Django.
No exemplo, temos um usuário chamado jvworld, com um domínio javaworld.com.br. Veja como nós o configuramos:
Dentro do diretório /home/jvworld/public_html, onde colocaremos nosso aplicativo, criamos o arquivo django.wsgi com o seguinte código python:
import os, sys sys.path.append('/home/jvworld/public_html') sys.path.append('/home/jvworld/public_html/jworld') os.environ['DJANGO_SETTINGS_MODULE'] = 'jworldcombr.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Por fim, a integração com o domínio, usando o usuário root para criar o arquivo, via SSH:
Cria os diretórios
mkdir -p /usr/local/apache/conf/userdata/std/2/jvworld/javaworld.com.br/
Cria o arquivo de configuração do WSGI
vi /usr/local/apache/conf/userdata/std/2/jvworld/javaworld.com.br/wsgi.conf
Adicione o seguinte conteúdo (mude para seu usuário e aplicativo):
<IfModule mod_alias.c> Alias /robots.txt /home/jvworld/public_html/jworld/media/robots.txt Alias /favicon.ico /home/jvworld/public_html/jworld/media/favicon.ico Alias /media /home/jvworld/public_html/jworld/media Alias /adminmedia /home/jvworld/public_html/jworld/media/adminmedia </IfModule> <IfModule mod_wsgi.c> WSGIScriptAlias / /home/jvworld/public_html/django.wsgi WSGIDaemonProcess javaworld.com.br threads=15 display-name=%{GROUP} WSGIProcessGroup javaworld.com.br WSGIApplicationGroup %{GLOBAL} </IfModule>
As instruções acima fará com que, ao digitar o domínio, apareça o aplicativo Django.
Reinicie o Apache com estes dois comandos abaixo:
/scripts/rebuildhttpdconf /etc/init.d/httpd restart
Se ao fazer o comando /scripts/rebuildhttpdconf, aparecer um erro, significa que configurou algo errado no wsgi.conf.
- Logs de erros (caso apareça o erro 500 no browser ao abrir o domínio configurado)
Leia os erros do Apache no seguinte endereço abaixo, como usuário root, com o comando:
tail -100 /usr/local/apache/logs/error_log
NOTA: Para remover o mapeamento, basta retirar o "wsgi.conf" do diretório criado ou modificar o final ".conf" por outro nome e refazer os dois comandos dados para reiniciar o Apache acima.
IMPORTANTE: É necessário conhecimentos básicos de terminal Linux para inserir dados. Suporte de hospedagem não ensina ou ajuda com problemas relacionados a aplicativos Django. Eventuais erros que vier a ter, pedimos que pesquise a respeito em sites e fóruns especializados. Esperamos que compreenda.