2009-05-13 13 views
2

djangoプロジェクトのデータベース設定を有効にすると(私の疑問の傾向に気付き始めたとき)、内部的なサーバーエラーが発生します。データベース設定を空白に設定すると、エラーはなくなります。ここに出力するApacheエラーログがあります。データベース接続の問題を持つdjangoとmod_wsgi

mod_wsgi (pid=770): Exception occurred processing WSGI script '/Users/teifionjordan/rob2/apache/django.wsgi'. 
Traceback (most recent call last): 
    File "/Library/Python/2.5/site-packages/django/core/handlers/wsgi.py", line 239, in __call__ 
    response = self.get_response(request) 
    File "/Library/Python/2.5/site-packages/django/core/handlers/base.py", line 67, in get_response 
    response = middleware_method(request) 
    File "/Library/Python/2.5/site-packages/django/contrib/sessions/middleware.py", line 9, in process_request 
    engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) 
    File "/Library/Python/2.5/site-packages/django/contrib/sessions/backends/db.py", line 2, in <module> 
    from django.contrib.sessions.models import Session 
    File "/Library/Python/2.5/site-packages/django/contrib/sessions/models.py", line 4, in <module> 
    from django.db import models 
    File "/Library/Python/2.5/site-packages/django/db/__init__.py", line 16, in <module> 
    backend = __import__('%s%s.base' % (_import_path, settings.DATABASE_ENGINE), {}, {}, ['']) 
    File "/Library/Python/2.5/site-packages/django/db/backends/mysql/base.py", line 10, in <module> 
    import MySQLdb as Database 
    File "build/bdist.macosx-10.5-i386/egg/MySQLdb/__init__.py", line 19, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 4, in __bootstrap__ 
    File "/Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py", line 841, in resource_filename 
    self, resource_name 
    File "/Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py", line 1310, in get_resource_filename 
    self._extract_resource(manager, self._eager_to_zip(name)) 
    File "/Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py", line 1332, in _extract_resource 
    self.egg_name, self._parts(zip_path) 
    File "/Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py", line 921, in get_cache_path 
    self.extraction_error() 
    File "/Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py", line 887, in extraction_error 
    raise err 
ExtractionError: Can't extract file(s) to egg cache 

The following error occurred while trying to extract file(s) to the Python egg 
cache: 

    [Errno 20] Not a directory: '/Library/WebServer/.python-eggs/MySQL_python-1.2.2-py2.5-macosx-10.5-i386.egg-tmp' 

The Python egg cache directory is currently set to: 

    /Library/WebServer/.python-eggs 

Perhaps your account does not have write access to this directory? You can 
change the cache directory by setting the PYTHON_EGG_CACHE environment 
variable to point to an accessible directory. 

そしてここdjango.wsgiファイル

import os 
import sys 

os.environ['DJANGO_SETTINGS_MODULE'] = 'rob2.settings' 

sys.path.append('/Users/teifionjordan') 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

である私は、チュートリアルのサーバを実行する場合、それは正しく管理パネルを表示し、すべてのMySQLデータベースにうまく接続し、いくつかの他のスクリプトを持っています。私は卵の環境変数を変更しようとしましたが、何も変わりません。

+0

sqlite3にスワップすると動作するという問題が「修正」されますが、mysqlを使用する方がはるかです。 – Teifion

+0

卵の環境変数を変更しようとしましたが、スタックトレースには依然としてマシン全体のディレクトリが一覧表示されています。これがあなたのApacheプロセスによって書き込み可能であると確信していますか? – Baldu

答えて

8

PYTHON_EGG_CACHE環境変数を設定する必要があります。 Apache/mod_wsgiは、Apacheが....への書き込みアクセス権を持たないディレクトリに卵を抽出しようとしています。

Django docs hereで説明しています。

/Library/WebServer/.python-eggsは存在しますか?あなたのApache設定ファイルはどのようなものですか?

関連する問題