Apache + WSGI + Python + Django me dando alguns erros estranhos


1

Aqui está um resumo do que fiz

  • Mudei meu projeto de django para /pymodules/honstreams
  • Eu instalei o apache2 e o apache2-dev
  • Eu instalei python brew, instale o Python-2.7.2 e mudei para ele
  • Eu coloquei PYTHONPATH para /pymodules em /etc/profile e confirmou que funciona
  • Eu compilei o mod-wsgi.so usando as versões corretas do python e do apache
  • Eu adicionei o módulo wsgi ao httpd.conf
  • Eu criei um wsgi_handler.py instruído por este tutorial . É isso:

    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'honstreams.settings'
    
    import django.core.handlers.wsgi
    
    application = django.core.handlers.wsgi.WSGIHandler()
    
  • Eu configurei o Apache VirtualHost instruído pelo mesmo tutorial. Eu editei /etc/apache2/sites-enabled/000-default para isso:

    <VirtualHost *>
    
            ServerName www.honstreams.com
            ServerAlias *honstreams.com
    
            Alias /admin_media /root/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/site-packages/django/contrib/ad$
    
            <Location /admin_media>
                    Order allow,deny
                    Allow from all
            </Location>
    
            Alias /media /root/honstreams/website/media
    
            <Location /media>
                    Order allow,deny
                    Allow from all
            </Location>
    
            WSGIScriptAlias / /root/honstreams/wsgi_handler.py
    
            WSGIDaemonProcess honstreams user=www-data group=www-data processes=1 threads=10
            WSGIProcessGroup honstreams
    
    </VirtualHost>
    

Eu começo o apache sem erros. Eu tento acessar a pasta raiz de http e /var/log/apache2/error.log repete:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

Para ser perfeitamente honesto, não tenho a menor ideia do que fazer a seguir. Eu não sei o que <prefix> ou <exec_prefix> é e o Google não está sendo particularmente útil. Eu estou supondo que preciso definir a variável PYTHONHOME para o usuário www-data.

Também não estou tentando importar um módulo chamado "site" em qualquer um dos meus códigos, em qualquer lugar, nunca. Portanto, eu suponho que ele se consertará se eu corrigir os erros acima.

Qualquer ajuda seria apreciada!


EDIT: eu definir PYTHONHOME para /root/.pythonbrew/pythons/Python-2.7.2 em /etc/profile. Estou recebendo exatamente o mesmo erro de antes. Faz /etc/profile tem algum efeito quando um usuário não está logado em um shell?

Respostas:


1

Eu sabia o tempo todo que minhas permissões estavam corretas na minha instalação do Python. O que eu não sabia é que, se uma pasta no topo da hierarquia tivesse permissões mais restritivas, isso causaria impacto.

A solução era garantir que toda a cadeia de diretórios, do root até a instalação do python, tivesse permissões de rx.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.