将多个Django项目部署到Apache服务器上
2015.08.23
一、运行环境
1、Windows 7 x
2、httpd-2.2.19-win (解压后,如我的在E:\\httpd-2.2-x,运行httpd.exe -k install安装服务)。
3、python 3.4 amd
4、django 1.8.4 使用pip install安装
5、mod_wsgi-4.4.13+ap22vc10-cp34-none-win_amd.whl中的mod_wsgi.so文件 注:所有软件放到金山快盘/软件/apache2_django.rar 二、Django配置
1、首先创建可以使用python manager.py runserver可以运行的项目。例如:
2、修改wsgi.py文件(注意添加import sys)
1)将os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\ 修改为os.environ['DJANGO_SETTINGS_MODULE'] = 'zqxt4396.settings', 2)添加下列语句,将之加入系统路径
apache_configuration = os.path.dirname(__file__) project = os.path.dirname(apache_configuration) Sys.path.append(project)
三、Apache2.2配置
1、将mod_wsgi.so 文件放到 httpd-2.2-x/modules目录下。 2、修改conf目录下httpd.conf文件
1)设置服务器所在的目录 ServerRoot \"E:/httpd-2.2-x\"
2)添加mod_wsgi.so模块 #添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so
3)使能虚拟主机的文件引用 # Virtual hosts
Include conf/extra/httpd-vhosts.conf
3、修改conf/extra目录下的httpd-vhosts.conf文件
在其中添加VirtualHost配置,例如:
#如果是80端口这句不用写,主配置文件httpd.conf已经有了 Listen 8081
#这句貌似也不用,2.4的不需要这句 NameVirtualHost *:8081
#配置端口号,*可以换成主机ip,如果ip不固定,就有*就好了,很方便 #配置访问的域名 ServerName localhost #管理员EmailServerAdmin fp862@163.com #虚拟主目录
DocumentRoot \"F:/code/python/zqxt_ajax_pic\" #关键一句配置项目入口点
WSGIScriptAlias / \"F:/code/python/zqxt_ajax_pic/zqxt4396/wsgi.py\" AddType text/html .py #配置主目录权限
Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all
#配置项目配置文件目录权限
Order Deny,Allow Allow from all
#错误日志
ErrorLog \"logs/zqxt_ajax_pic-error.log\" #访问日志
CustomLog \"logs/zqxt_ajax_pic-access.log\" common #配置管理员静态文件目录,及其权限
Alias /static/admin C:/Python34/Lib/site-packages/django/contrib/admin/static/admin Order allow,deny Allow from all
#配置静态文件目录,及其权限
Alias /static F:/code/python/zqxt_ajax_pic/common_static/ Order allow,deny Allow from all
另一个项目,基本类似
#如果是80端口这句不用写,主配置文件httpd.conf已经有了 Listen 8080
#这句貌似也不用,2.4的不需要这句 NameVirtualHost *:8080
#配置端口号,*可以换成主机ip,如果ip不固定,就有*就好了,很方便 #配置访问的域名 ServerName localhost #管理员EmailServerAdmin fp862@163.com #虚拟主目录
DocumentRoot \"E:/httpd-2.2-x/htdocs/forajax/forajax\" #关键一句配置项目入口点
WSGIScriptAlias / \"E:/httpd-2.2-x/htdocs/forajax/forajax/wsgi.py\" AddType text/html .py #配置主目录权限
Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all
#配置项目配置文件目录权限
Order Deny,Allow Allow from all
#错误日志
ErrorLog \"logs/py.test.com-error.log\" #访问日志
CustomLog \"logs/py.test.com-access.log\" common
#配置管理员静态文件目录,及其权限
Alias /static/admin C:/Python34/Lib/site-packages/django/contrib/admin/static/admin Order allow,deny Allow from all
#配置静态文件目录,及其权限
Alias /static E:/httpd-2.2-x/htdocs/forajax/static/ Order allow,deny Allow from all
注:实践可用,期间出现了许多问题,血的教训。