Estou recebendo alguns erros estranhos com os quais trabalhei até esse ponto.
Eu tenho uma configuração de servidor Ubuntu com Apache + mod_wsgi + Django. Quando eu sou SSH no servidor, posso acessar o site bem de um navegador em uma máquina diferente, e tudo parece esplêndido. Quando não estou em SSH, recebo um 404 Not Found no meu navegador, com isso como o erro em meus logs do Apache:
[Wed Apr 18 10:15:02 2012] [error] [client ...] Target WSGI script not found or unable to stat: /home/zen/kiosk
(O que mais me incomoda sobre esse erro é que o script WSGI de destino não é o caminho completo que listei em meu arquivo de configuração do apache)
Versões:
- Ubuntu 10.10 de 64 bits
- Apache 2.2.16
- Python 2.6.6
- Django 1.3.1
- mod_wsgi 3.2
Configuração do Apache:
Alias /static/ /home/zen/kiosk/static/
User zen
<Directory /home/zen/kiosk/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/zen/kiosk/server/config/django.wsgi
#Alias / /home/zen/kiosk/server/config/django.wsgi
<Directory /home/zen/kiosk/server/config>
Order allow,deny
Allow from all
</Directory>
Ao usar apenas Alias em vez de WSGIScriptAlias (como comentado no arquivo Config), eu posso ver o arquivo wsgi se eu tiver SSH em, mas obter o mesmo 404 eu me levanto acima com isso como a mensagem de erro:
[Wed Apr 18 11:10:01 2012] [error] [client ...] File does not exist: /home/zen/kiosk
Configuração WSGI (/home/zen/kiosk/server/config/django.wsgi)
import os, sys
sys.path.insert(0, '/home/zen/kiosk/server')
sys.path.insert(0, '/home/zen/kiosk')
os.environ['DJANGO_SETTINGS_MODULE'] = 'server.settings'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/.python-eggs'
os.environ["CELERY_LOADER"] = "django"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
sys.stdout = sys.stderr
Tudo / home / zen / kiosk e under foram chmoded para 755, mas isso não parece realmente importar.
drwxr-xr-x 8 zen zen 4096 2012-04-16 16:13 /home/zen
zen@KioskServer:~$ ls -ld /home/zen/kiosk
drwxr-xr-x 8 zen zen 4096 2012-04-11 12:52 /home/zen/kiosk
zen@KioskServer:~$ ls -ld /home/zen/kiosk/server/
drwxr-xr-x 8 zen zen 4096 2012-04-16 15:05 /home/zen/kiosk/server/
zen@KioskServer:~$ ls -ld /home/zen/kiosk/server/config/
drwxr-xr-x 3 zen zen 4096 2012-04-03 22:05 /home/zen/kiosk/server/config/
zen@KioskServer:~$ ls -l /home/zen/kiosk/server/config/django.wsgi
-rwxr-xr-x 1 zen zen 504 2012-04-16 14:44 /home/zen/kiosk/server/config/django.wsgi
Quando eu removo "User zen" do arquivo Apache Config, recebo o seguinte erro em vez do script Target WSGI, contanto que eu não seja SSH no servidor.
[Wed Apr 18 10:29:02 2012] [error] [client ...] (13)Permission denied: access to /login/ denied
Onde meu navegador tem um erro 403 Proibido. Esse erro também não ocorre quando estou usando o SSH.
Parece um erro de permissões ou talvez algum problema com algumas variáveis do caminho. Infelizmente, estou meio que preso neste ponto e não tenho certeza do que mais tentar.
Obrigado
Edit: Eu vi em um segmento diferente alguém perguntar por este comando (dpkg -l * apache * | grep -E '^ ii') então eu imaginei que iria adicionar agora. Eu costumava ter prefork, mas mudei para o trabalhador quando alguém sugeriu que poderia ajudar. O erro estava ocorrendo com o prefork e no worker exatamente o mesmo.
ii apache2 2.2.16-1ubuntu3.5 Apache HTTP server metapackage
ii apache2-mpm-worker 2.2.16-1ubuntu3.5 Apache HTTP Server - high speed threaded model
ii apache2-utils 2.2.16-1ubuntu3 utility programs for webservers
ii apache2.2-bin 2.2.16-1ubuntu3.5 Apache HTTP Server common binary files
ii apache2.2-common 2.2.16-1ubuntu3.5 Apache HTTP Server common files
ii libapache2-mod-wsgi 3.2-2 Python WSGI adapter module for Apache
Edit2: Parece que isso tem a ver com um Diretório Doméstico Criptografado, que eu não sabia que tinha neste servidor. Ainda não posso postar uma resposta para isso devido à Reputação, mas o farei quando puder para que outras pessoas com o mesmo problema consigam descobrir o negócio muito mais rapidamente.