Mudanças entre as edições de "Instalando o mod wsgi Python e Configurando o Django em máquinas com Cpanel"

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
Linha 149: Linha 149:
  
 
[[Categoria:CPANEL]]
 
[[Categoria:CPANEL]]
 +
[[Categoria:WHM]]

Edição das 13h56min de 6 de abril de 2015

Antes, queremos que saiba que, trabalhar com aplicativos fora do painel, podem ocorrer situações que, se danificarem o mesmo, muitas vezes poderá não ser arrumado, onde até mesmo uma reinstalação deverá ser feita. Não nos responsabilizamos e nem disponibilizamos suporte para tais eventuais situações, sem custo. Lembre-se que o suporte é exclusivo para o que o painel fornece como características. O nosso suporte também não vai lhe ajudar no Django e nem responderemos mais a questões relacionadas ao tutorial abaixo. Eventuais erros que vier a ter, pedimos que pesquise a respeito em sites e fóruns especializados. Esperamos que compreenda.

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.

Alt text

Adicione as linhas abaixo em Pre Main Include:

LoadModule wsgi_module /usr/local/apache/modules/mod_wsgi.so

AddHandler wsgi-script .wsgi

Alt text

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



PS: 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.

PS2: É necessário conhecimentos básicos de terminal Linux para inserir dados.