Como configurar o Django com o IIS 8?

11

Eu tentei no passado fazer o Django rodar no IIS 8 no Windows 8 Developer Preview. Agora que a visualização do consumidor do Windows 8 terminou, fiquei pensando se poderia obter algumas instruções detalhadas sobre como configurar o Django no IIS.

Como faço para executar esse processo - mal sei por onde começar. Preciso de um módulo ISAPI específico?

Nathan Osman
fonte

Respostas:

19

Esse processo não é exatamente trivial, mas é possível usando as seguintes etapas:

  1. Primeiro, baixe e instale o Python 2.6 . (A razão pela qual sugiro o Python 2.6 em vez do Python 2.7 é porque a versão mais recente do Python suportada pelo módulo PyISAPIe é o Python 2.6.) Anote o local em que você instala o Python ( C:\Python26por padrão, se bem me lembro).

  2. Clique com o botão direito do mouse em Computador e clique em Propriedades. Clique em Configurações avançadas do sistema à esquerda.

    insira a descrição da imagem aqui

  3. Clique na guia Avançado e, em seguida, clique no botão Variáveis ​​de ambiente. Localize Caminho na caixa de listagem inferior:

    insira a descrição da imagem aqui

  4. Clique no botão "Editar ..." e vá até o final Valor variável e insira ;C:\Python26(um ponto-e-vírgula mais o caminho no qual você instalou o Python):

    insira a descrição da imagem aqui

  5. Clique em OK para descartar todas as caixas de diálogo.

  6. Em seguida, faça o download da versão mais recente do PyISAPIe aqui . Extraia o conteúdo do arquivo em algum lugar e abra o diretório.

  7. Em seguida, abra o Painel de Controle, clique em Programas e Recursos e clique em "Ativar ou desativar recursos do Windows" à esquerda.

    insira a descrição da imagem aqui

  8. Navegue para Serviços de informações da Internet -> Serviços na World Wide Web -> Recursos de desenvolvimento de aplicativos e verifique se as extensões ISAPI estão marcadas.

    insira a descrição da imagem aqui

  9. Aplique as alterações e abra o Gerenciador do IIS. Clique duas vezes no ícone Mapeamentos de manipulador.

    insira a descrição da imagem aqui

  10. Clique em Adicionar mapeamento de módulo à direita. Na caixa de diálogo exibida, insira as seguintes informações:

    • Caminho da solicitação: *
    • Módulo: IsapiModule
    • Executável (opcional): [Navegue até o caminho onde você extraiu o PyISAPIe e selecione PyISAPIe.dll]
    • Nome: Python via PyISAPIe


    Deve ser algo como isto:

    insira a descrição da imagem aqui

  11. Antes de fechar a caixa de diálogo, clique em Solicitar restrições, desmarque "Invocar manipulador apenas se a solicitação estiver mapeada para:" e clique em OK. Clique também em OK para fechar a caixa de diálogo Adicionar mapeamento de módulo (clique em Sim se você for perguntado se deseja adicionar a extensão com uma entrada Permitida à lista Restrições ISAPI e CGI).

    insira a descrição da imagem aqui

  12. O próximo passo é baixar o Django . Extraia o conteúdo do arquivo em algum lugar (anotando o local). Abra um prompt de comando (você pode fazer isso pressionando Win+ R, digitando cmde pressionando Enter) e digite cdseguido pelo local para o qual extraiu o Django:

    insira a descrição da imagem aqui

  13. Pressione Enter, digite cd dje pressione Tab. Isso deve completar o caminho para a pasta Django e você pode pressionar Enterpara abrir o diretório. Agora digite python setup.py install:

    insira a descrição da imagem aqui

  14. Agora você precisa criar o projeto Django. Por exemplo, criaremos os projetos em C:\Django. Na janela de comando, digite os comandos abaixo seguidos por Enter:

    • cd C:\
    • mkdir Django
    • cd Django
    • python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test


    Isso cria um projeto chamado 'teste'.

  15. Depois que o processo é concluído com êxito, a última tarefa restante é conectar o PyISAPIe ao Django. Para fazer isso, retorne ao diretório para o qual você extraiu o PyISAPIe e procure um diretório Http. Dentro está um arquivo Isapi.py. Abra-o em um editor de texto e substitua o conteúdo pelo seguinte:

    from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
    from Http.WSGI import RunWSGI
    from Http import Env
    import os, sys
    
    sys.path.append('C:\Django')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'
    
    def Request():
    
        PathInfo = Env.PATH_INFO
    
        if not PathInfo.startswith('/'):
            return True
    
        for Excl in ['/media']:
            if PathInfo.startswith(Excl):
                return True
    
        return RunWSGI(DjangoHandler(), Base='/')
    
  16. Copie o diretório Http para C:\Python26\Lib\site-packages(ou o diretório apropriado se você instalou o Python em outro lugar).

  17. Reinicie o IIS (você pode fazer isso clicando em "reiniciar" no lado direito do Gerenciador do IIS):

    insira a descrição da imagem aqui

  18. Se tudo funcionou corretamente, você deve poder acessar http: // localhost para visualizar seu novo site do Django:

    insira a descrição da imagem aqui


Notas adicionais e adições

  • Desde então, eu compilei o PyISAPIe para Python 2.7 (ambos de 32 e 64 bits) e enviei os arquivos aqui: http://www.box.com/s/a5fb1b21fcdf738d2590

  • Na etapa 6, você precisa garantir que pyisapie.dllesteja em um diretório ao qual o IIS tenha pelo menos acesso de leitura. Deixar de levar isso em consideração resultará em erros estranhos.

Nathan Osman
fonte
2
Boa resposta, George. 1
Kev
1
Esta resposta muito bom apenas me salvar
Trinh Hoang Nhu
Obrigado, mas estou lutando para fazê-lo funcionar. Você não mencionou que criou um site do IIS (em Servidor> Sites). Você não precisa? Você usa o site padrão / DefaultAppPool? Se sim, o que você indica como raiz do site? Além disso: Como sei que a DLL está funcionando? Os arquivos .py no Http nunca são compilados, portanto, não acho que os pedidos sejam tratados pelo Python / Django.
Eric Leibenguth
1

Você encontrará o guia detalhado de como instalar o Django no IIS8 nesta postagem do blog:

Instalando o Django no IIS: um tutorial passo a passo

Em resumo, essas etapas precisam ser executadas:

  • Instalando o Python no Windows
  • Instalando o Django
  • Instalando um projeto Django
  • Executando um Servidor HTTP de Teste
  • Configurando e executando um servidor FastCGI
  • Configurando o IIS para executar um aplicativo FastCGI
  • Configurando o recurso estático e os diretórios de mídia
  • Uma observação sobre bancos de dados (notas sobre drivers compatíveis para alguns bancos de dados)
  • Solução de problemas (notas sobre como solucionar problemas)

Espero que ajude!

Dmitry Pavlov
fonte
0

Outra opção é usar o django-windows-tools, apesar de não ter sido atualizado há alguns anos. Ele simplesmente configura o módulo FastCGI no IIS para você, assim você não precisa se preocupar em utilizar o PyISAPIe.

https://github.com/antoinemartin/django-windows-tools

Bobort
fonte