로컬 우분투 컴퓨터에서 django 응용 프로그램을 사용하려고합니다. 그러나 사이트가 작동하지 않고 다음과 /var/log/apache2/errors.log
같은 메시지로 채워집니다.
ImportError: No module named site
내 /var/log/apache2/error.log
(오늘은) 다음과 같습니다.
$ cat error.log | uniq -c
1 [Wed Jun 29 09:37:37 2011] [notice] Apache/2.2.17 (Ubuntu) mod_wsgi/3.3 Python/2.7.1+ configured -- resuming normal operations
12966 ImportError: No module named site
그것은 내가 기계를 켰을 때 시작되었다는 no module named site
메시지입니다.
날짜 시간 필드가 없다는 점에 유의하십시오. 이러한 오류는 웹 사이트를 방문하지 않아도 (예 : 웹 요청을하지 않는 경우에도) 반복됩니다. 브라우저에서 웹 사이트로 이동하면 큰 다운로드를 기다리는 것처럼 중단됩니다.
설정
아파치 모듈
pip와 함께 설치된 많은 패키지 (django 1.1 포함)가있는 Python 2.5 virtualenv를 사용하고 있습니다. mod_wsgi가로드되었습니다.
$ ls -l /etc/apache2/mods-enabled/wsgi*
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/apache2/mods-enabled/wsgi.conf -> ../mods-available/wsgi.conf
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/apache2/mods-enabled/wsgi.load -> ../mods-available/wsgi.load
"tix"를 localhost로 설정된 도메인 이름으로 사용합니다. /etc/hosts
$ grep tix /etc/hosts
127.0.0.1 tix
아파치 설정
여기 내 아파치 구성이 있습니다 (작동 시키거나 주석 처리 된 줄 등을 시도 할 수 있습니다) .
# mod-wsgi enabled virtual host
WSGISocketPrefix /home/rory/tix/tix_wsgi/tmp
WSGIPythonHome /home/rory/tix/virtualenv2.5/lib/python2.5/
UnSetEnv PYTHONSTARTUP
SetEnv PYTHONPATH /home/rory/tix/virtualenv2.5/lib/python2.5/
#WSGIPythonEggs /home/rory/svn/tix/tmp/python-eggs
<VirtualHost 127.0.0.1:80>
ServerName tix
Alias /media /home/rory/tix/tix/media
Alias /selenium /home/rory/tix/tix/tests/selenium
<Directory /home/rory/tix/tix/media>
SetHandler None
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess tix user=tix_wsgi group=tix_wsgi processes=4 threads=1 python-path=/home/rory/tix/virtualenv2.5/lib/python2.5/site-packages
WSGIScriptAlias / /home/rory/tix/tix/apache/loader.wsgi
WSGIProcessGroup tix
CustomLog /var/log/apache2/tix_access.log combined
ErrorLog /var/log/apache2/tix_error.log
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
</Location>
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^media.tix$ [NC]
RewriteRule .? http://tix/media%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
wsgi 로더
내 loader.wsgi는 다음과 같습니다.
나는 import site
이 파일에 있었는데 문제를 일으킨 것으로 생각되었지만 그것을 제거하면 오류가 계속 발생합니다.
# loader.wsgi - WSGI adapter for tix django project
# The python paste wrapper catches apache 500 errors (Internal Server Errors) and gives debug output
# See http://pythonpaste.org/modules/exceptions.html
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'tix.settings.base'
from paste.exceptions.errormiddleware import ErrorMiddleware
import django.core.handlers.wsgi
tixette = django.core.handlers.wsgi.WSGIHandler()
application = ErrorMiddleware(tixette, debug=True, error_email='operator@example.com', error_subject_prefix='Alert: wsgi loader python paste: ', error_log='/tix/1.0/logs/paste.log', show_exceptions_in_wsgi_errors=False)
이 구성은 Ubuntu 10.10에서 잘 작동했지만 Ubuntu 11.04로 업그레이드 한 후 위의 오류가 발생합니다.