今天做好了第二个django项目,但在部署时出了一点小问题,在此记录一下。
1、mod_wsgi 3.4已经支持了部署多个项目,只需在httpd.conf中进行如下配置:
WSGIScriptAlias /website1 "D:\website1\django.wsgi"
<Directory "D:\website1\django.wsgi">
Options ExecCGI
Order deny,allow
Allow from all
</Directory> WSGIScriptAlias /website2 "D:\website2\django.wsgi"
<Directory "D:\website2\django.wsgi">
Options ExecCGI
Order deny,allow
Allow from all
</Directory>
2、urls.py需要修改一下,如下:
from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover() urlpatterns = patterns('',
# Examples:
# url(r'^$', 'cloudweb.views.home', name='home'),
# url(r'^cloudweb/', include('cloudweb.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)), #url(r'^initos/$', 'cloudapp.views.initos'),
url(r'^$', 'cloudapp.views.publish'),
url(r'^submit/$', 'cloudapp.views.publish_submit'),
)
原来按照官方文档是这样设置的:
httpd.conf:
WSGIScriptAlias / "D:\website1\django.wsgi"
urls.py:
url('^website1/submit/$', 'cloudapp.views.publis_submit'),
3、如果碰到如下错误:
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] mod_wsgi (pid=7976): Exception occurred processing WSGI script 'D:/website1/django.wsgi'.
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] Traceback (most recent call last):
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 236, in __call__
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] self.load_middleware()
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\core\\handlers\\base.py", line 51, in load_middleware
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] mod = import_module(mw_module)
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] __import__(name)
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\contrib\\auth\\middleware.py", line 3, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.contrib.auth.backends import RemoteUserBackend
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\contrib\\auth\\backends.py", line 3, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.contrib.auth.models import Permission
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\contrib\\auth\\models.py", line 8, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.db import models
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\db\\models\\__init__.py", line 12, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.db.models.fields.files import FileField, ImageField
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\db\\models\\fields\\files.py", line 7, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.core.files.storage import default_storage
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\core\\files\\storage.py", line 12, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] from django.core.files import locks, File
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\django\\core\\files\\locks.py", line 24, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] import pywintypes
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 124, in <module>
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] __import_pywin32_system_module__("pywintypes", globals())
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] File "C:\\Python26\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 114, in __import_pywin32_system_module__
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] assert sys.modules[modname] is old_mod
[Wed Sep 04 18:03:45 2013] [error] [client 10.16.16.28] AssertionError
找到C:\Python26\lib\site-packages\win32\lib\pywintypes.py文件的114行,修改如下:
if sys.version_info < (3,0):
pass
## assert sys.modules[modname] is old_mod
## assert mod is old_mod
else:
assert sys.modules[modname] is not old_mod
assert sys.modules[modname] is mod
# as above - re-reset to the *old* module object then update globs.
sys.modules[modname] = old_mod
globs.update(mod.__dict__)
现在两个站点均可访问:)