mod_wsgiを使用してApache上でローカルのDjangoサーバを実行しようとしています。私はMac上ですぐに使用できるApacheを実行しています。Mac上のDjango:mod_wsgiの設定に問題があるApache
[email protected]:~/Sites/mysite$ apachectl -v
Server version: Apache/2.2.21 (Unix)
Server built: Nov 15 2011 15:12:57
Apacheはmod_wsgiを適切に読み込みます。
WSGIDaemonProcess django
WSGIProcessGroup django
Alias /mysite/ "/Users/hobbes3/Sites/mysite/"
<Directory "/Users/hobbes3/Sites/mysite">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>
WSGIScriptAlias /mysite "/Users/hobbes3/Sites/mysite/apache/django.wsgi"
<Directory "/Users/hobbes3/Sites/mysite/apache">
Allow from all
</Directory>
マイdjango.wsgi
ファイルは、私はまた、エラーなしにApacheを再起動することができます
import os
import sys
paths = [ '/Users/hobbes3/Sites/mysite',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages',
]
for path in paths:
if path not in sys.path:
sys.path.append(path)
sys.executable = '/usr/local/bin/python'
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
である私はapache_django_wsgi.conf
をロード私のhttpd.conf
ファイルで
[email protected]:~/Sites/mysite$ apachectl -t -D DUMP_MODULES | grep wsgi
Syntax OK
wsgi_module (shared)
。しかし、http://localhost/mysite
にアクセスしようとすると、私のブラウザには500の内部サーバーエラーがあると言われています。私はその中sys.path
が含まれていなかった、それはmysite.settings
をインポートすることはできませんなぜ私にはわからない
mod_wsgi (pid=73970): Exception occurred processing WSGI script '/Users/hobbes3/Sites/mysite/apache/django.wsgi'.
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 250, in __call__
self.load_middleware()
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/handlers/base.py", line 39, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/conf/__init__.py", line 89, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
:
私のApacheのエラーログには、(私は日付と時刻を切り捨て)と言いますか?
settings.py
へのフルパスは、/Users/hobbes3/Sites/mysite/
です。
これは簡単な修正でした。しかし、今私は新しいエラー(Apacheログから)を持っています: 'TemplateSyntaxError:レンダリング中に不適切に設定されました:MySQLdbモジュールの読み込み中にエラーが発生しました:MySQLdbという名前のモジュールがありません。私は 'django-admin.py runserver'を実行すると' mysite'が動作するので、私はDjangoの 'settings.py'がMySQLdbで動作することを知っています。あなたがそれを理解することができない場合は心配しないでください。新しい質問を投稿します。それにもかかわらず、ありがとう! – hobbes3
これはほぼ確実にPythonのバージョンの問題です:mod_wsgiは特定のバージョンに対してコンパイルされますが、homebrew 2.7のサイトパッケージを調べるように指示しています。 mod_wsgiの2.7固有のバージョンが必要です。 –
'WSGIPythonHome/usr/local/Cellar/python/2.7.2 /'を 'apache_django_wsgi.conf'に追加しましたが、それは問題を解決していないようです。更新されたエラーは、 'TemplateSyntaxError:レンダリング中に不適切にキャッチされました:MySQLdbモジュールの読み込みエラー:dlopen(/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2)です。 7-macosx-10.4-x86_64.egg/_mysql.so、2):ライブラリがロードされていない:libmysqlclient.18.dylib'参照先:/usr/local/Cellar/python/2.7.2/lib/python2.7/サイトパッケージ/ MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so ' – hobbes3