Mudanças entre as edições de "Instalando o mod wsgi Python e Configurando o Django em máquinas com Cpanel"
(8 edições intermediárias de um usuário não apresentadas) | |||
Linha 1: | Linha 1: | ||
+ | [[File:Banner-wiki-promocoes.gif|center| 700px||border|link=https://www.integrator.com.br/plano-hospedagem-promocionais|Planos promocionais|]] | ||
− | Antes, | + | |
− | O | + | ---- |
+ | ---- | ||
+ | ---- | ||
+ | |||
+ | |||
+ | 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 | ; Como instalar o WSGI | ||
Linha 8: | Linha 14: | ||
Baixe e compile o wsgi no SSH, como usuário root: | Baixe e compile o wsgi no SSH, como usuário root: | ||
+ | <pre> | ||
cd /usr/local/src/ | cd /usr/local/src/ | ||
− | |||
wget http://modwsgi.googlecode.com/files/mod_wsgi-2.3.tar.gz | wget http://modwsgi.googlecode.com/files/mod_wsgi-2.3.tar.gz | ||
− | |||
gzip -dc mod_wsgi-2.3.tar.gz | tar xf - | gzip -dc mod_wsgi-2.3.tar.gz | tar xf - | ||
− | |||
cd mod_wsgi-2.3 | cd mod_wsgi-2.3 | ||
− | |||
./configure | ./configure | ||
− | |||
make && make install | make && make install | ||
+ | </pre> | ||
Após compilado, terá o módulo no seguinte caminho '''/usr/local/apache/modules/mod_wsgi.so'''. | Após compilado, terá o módulo no seguinte caminho '''/usr/local/apache/modules/mod_wsgi.so'''. | ||
Linha 28: | Linha 31: | ||
Adicione as linhas abaixo em '''Pre Main Include''': | Adicione as linhas abaixo em '''Pre Main Include''': | ||
− | LoadModule wsgi_module /usr/local/apache/modules/mod_wsgi.so | + | <pre>LoadModule wsgi_module /usr/local/apache/modules/mod_wsgi.so |
− | + | AddHandler wsgi-script .wsgi</pre> | |
− | AddHandler wsgi-script .wsgi | + | |
[[File:2013-11-22_14-44-14.png|frame|none|alt=Alt text|link=]] | [[File:2013-11-22_14-44-14.png|frame|none|alt=Alt text|link=]] | ||
Linha 42: | Linha 44: | ||
'''Baixando e instalando a versão 1.4.2''' | '''Baixando e instalando a versão 1.4.2''' | ||
+ | <pre> | ||
cd /usr/local/src | cd /usr/local/src | ||
− | |||
wget https://www.djangoproject.com/download/1.4.2/tarball/ | wget https://www.djangoproject.com/download/1.4.2/tarball/ | ||
− | |||
tar xzvf Django-1.4.2.tar.gz | tar xzvf Django-1.4.2.tar.gz | ||
− | |||
cd Django-1.4.2 | cd Django-1.4.2 | ||
− | |||
python setup.py install | python setup.py install | ||
+ | </pre> | ||
Se ocorreu tudo OK, verá isto como última linha: | Se ocorreu tudo OK, verá isto como última linha: | ||
− | Writing /usr/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg-info | + | '''Writing /usr/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg-info''' |
Por fim, teste assim no terminal SSH: | Por fim, teste assim no terminal SSH: | ||
− | python -c "import django; print(django.get_version())" | + | python -c "import django; print(django.get_version())" |
Se aparecer a versão, está tudo certo, você conseguiu. | Se aparecer a versão, está tudo certo, você conseguiu. | ||
Linha 72: | Linha 72: | ||
Dentro do diretório '''/home/jvworld/public_html''', onde colocaremos nosso aplicativo, criamos o arquivo '''django.wsgi''' com o seguinte código python: | Dentro do diretório '''/home/jvworld/public_html''', onde colocaremos nosso aplicativo, criamos o arquivo '''django.wsgi''' com o seguinte código python: | ||
+ | <pre> | ||
import os, sys | import os, sys | ||
− | |||
sys.path.append('/home/jvworld/public_html') | sys.path.append('/home/jvworld/public_html') | ||
− | |||
sys.path.append('/home/jvworld/public_html/jworld') | sys.path.append('/home/jvworld/public_html/jworld') | ||
− | |||
os.environ['DJANGO_SETTINGS_MODULE'] = 'jworldcombr.settings' | os.environ['DJANGO_SETTINGS_MODULE'] = 'jworldcombr.settings' | ||
− | |||
import django.core.handlers.wsgi | import django.core.handlers.wsgi | ||
− | |||
application = django.core.handlers.wsgi.WSGIHandler() | application = django.core.handlers.wsgi.WSGIHandler() | ||
− | + | </pre> | |
Por fim, a integração com o domínio, usando o usuário root para criar o arquivo, via SSH: | Por fim, a integração com o domínio, usando o usuário root para criar o arquivo, via SSH: | ||
Linha 89: | Linha 85: | ||
'''Cria os diretórios''' | '''Cria os diretórios''' | ||
− | mkdir -p /usr/local/apache/conf/userdata/std/2/jvworld/javaworld.com.br/ | + | mkdir -p /usr/local/apache/conf/userdata/std/2/jvworld/javaworld.com.br/ |
'''Cria o arquivo de configuração do WSGI''' | '''Cria o arquivo de configuração do WSGI''' | ||
− | vi /usr/local/apache/conf/userdata/std/2/jvworld/javaworld.com.br/wsgi.conf | + | 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)''': | '''Adicione o seguinte conteúdo (mude para seu usuário e aplicativo)''': | ||
− | + | <pre> | |
<IfModule mod_alias.c> | <IfModule mod_alias.c> | ||
− | + | Alias /robots.txt /home/jvworld/public_html/jworld/media/robots.txt | |
− | 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 /favicon.ico /home/jvworld/public_html/jworld/media/favicon.ico | + | Alias /adminmedia /home/jvworld/public_html/jworld/media/adminmedia |
− | + | ||
− | Alias /media /home/jvworld/public_html/jworld/media | + | |
− | + | ||
− | Alias /adminmedia /home/jvworld/public_html/jworld/media/adminmedia | + | |
− | + | ||
</IfModule> | </IfModule> | ||
<IfModule mod_wsgi.c> | <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> | ||
− | + | </pre> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
Linha 125: | Linha 113: | ||
Reinicie o Apache com estes dois comandos abaixo: | Reinicie o Apache com estes dois comandos abaixo: | ||
− | + | <pre>/scripts/rebuildhttpdconf | |
− | /scripts/rebuildhttpdconf | + | |
− | + | ||
/etc/init.d/httpd restart | /etc/init.d/httpd restart | ||
+ | </pre> | ||
Se ao fazer o comando '''/scripts/rebuildhttpdconf''', aparecer um erro, significa que configurou algo errado no '''wsgi.conf'''. | Se ao fazer o comando '''/scripts/rebuildhttpdconf''', aparecer um erro, significa que configurou algo errado no '''wsgi.conf'''. | ||
Linha 138: | Linha 125: | ||
Leia os erros do Apache no seguinte endereço abaixo, como usuário root, com o comando: | 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 | + | 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. |
---- | ---- | ||
---- | ---- | ||
[[Categoria:CPANEL]] | [[Categoria:CPANEL]] | ||
+ | [[Categoria:WHM]] | ||
+ | [[Categoria:TUTORIAIS]] | ||
+ | [[Categoria:VPS]] | ||
+ | [[Categoria:APACHE]] | ||
+ | [[Categoria:DEDICADO]] |
Edição atual tal como às 19h30min de 28 de agosto de 2018
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.