Saya mencoba menggunakan aplikasi Django di mesin ubuntu lokal saya. Namun situs tersebut tidak berfungsi dan saya /var/log/apache2/errors.log
dipenuhi dengan pesan-pesan seperti ini:
ImportError: No module named site
My /var/log/apache2/error.log
(untuk hari ini) terlihat seperti ini:
$ 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
Itu pemberitahuan bahwa itu dimulai ketika saya menghidupkan mesin saya, diikuti oleh 12.966 baris semua mengatakan no module named site
pesan
perhatikan kurangnya bidang datetime. Kesalahan ini berulang bahkan ketika tidak pergi ke situs web (yaitu bahkan ketika tidak membuat permintaan web). Ketika pergi ke situs web di browser, itu hanya hang, seolah menunggu unduhan besar.
Pengaturan
Modul Apache
Saya menggunakan virtualenv python 2.5 dengan banyak paket (termasuk. Django 1.1) diinstal dengan pip. Saya telah memuat 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
Saya menggunakan "tix" sebagai nama domain yang disetel ke localhost di /etc/hosts
$ grep tix /etc/hosts
127.0.0.1 tix
Konfigurasi Apache
Ini adalah konfigurasi apache saya (Anda dapat melihat beberapa upaya untuk membuatnya berfungsi, berkomentar, dll.) :
# 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>
pemuat wsgi
Ini adalah loader.wsgi saya:
Dulu saya ada import site
di file ini, yang saya pikir mungkin menyebabkan masalah, tapi saya menghapusnya dan kesalahan terus muncul.
# 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)
Konfigurasi ini berfungsi dengan baik di Ubuntu 10.10, tetapi karena saya meningkatkan ke Ubuntu 11.04, saya mendapatkan kesalahan di atas.