最近在学Django,想用Apache搭建一个服务器环境,因此在网上看了好多资料,很多都是用Python2.6和Apache2.2搭建的环境,不过我还是想用Python35和Apache24来搭建,具体环境如下:
1、Python3.5(https://www.python.org/)
2、Django1.9.4(https://www.djangoproject.com/)
3、Apache2.4(http://www.apache.org/)
4、mod_wsgi-4.4.23(http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi)
参考资料:
火乌: win8系统下 配置apache2.4+mod_wsgi4.4+django1.8.6+python3.4
Apache配置
1、配置Apache路径:
找到Apache/conf路径下的httpd.conf
找到SRVROOT的声明出,将路径修改为Apache根目录的绝对路径,保存即可
Define SRVROOT "F:/Apache24" ServerRoot "${SRVROOT}"
我把Apache安装在了F盘根目录,所以是"F:/Apache24"
注意:有些版本的Apache可能没有SRVROOT,那就需要修改所有的绝对路径,这里不做赘述
2、安装Apache服务
首先,打开CMD,cd到Apache的bin目录下
> F: > cd Apache24/bin/
键入以下代码将Apache添加为系统服务(名字为Apache24)
> httpd -k install -n Apache24
现在Apache就已经安装进入系统服务了,之后可以用ApacheMonitor.exe对Apache服务进行简单的管理:
以上就是Apache的简单配置。
Django安装:
首先安装Miniconda,直接运行Miniconda的安装程序即可,选择Miniconda的原因是Miniconda内置了conda模块,可以通过conda install package安装绝大多数的模块,可以快速配置Pandas、Numpy等科学运算环境,且Miniconda是一个纯净的版本,不像Anaconda已经内置了大量的包,使的Miniconda相当的灵活。
安装Python的时候要将Python的路径配置进系统Path中,可以直接勾选选项,也可以安装完毕之后再手动配置。
Django的安装可以使用pip协议:
> pip install Django==1.9.4
此时可以在Python中查看Django版本:
>>> import Django >>> Django.VERSION
mod_wsgi安装:
官网给出的mod_wsgi安装方法比较麻烦,而且很容易出错(Tips:我没有编译成功T_T)
不过,在网上已经有人上传了编译后的whl包,可以在http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi中找到
因为我的系统是64位的,Python使用的3.5版本,Apache是2.4版本,所以我选择了:
mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl
(Tips:我的系统中已经安装VS2015,不太清楚在安装mod_wsgi时VS是否必要)
将文件下载完后需要使用pip安装:
>>> pip install mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl
安装完成后在Python的根目录下会有一个名为mod_wsgi.so的文件
将其复制到Apache的Modules目录下
接着,需要修改Apache的配置文件:
#导入mod_wsgi.so模块 LoadModule wsgi_module modules/mod_wsgi.so #定义static路径,用于存放js、css、img等 Alias /static/ "${SRVROOT}/htdocs/static" <Directory "${SRVROOT}/htdocs/static"> Allow from all </Directory> #配置Django工程, #我用的是Apache下的htdocs目录 #wsgi位于website文件夹中,在Django1.9中已经自带 WSGIScriptAlias / ${SRVROOT}/htdocs/website/wsgi.py WSGIPythonPath ${SRVROOT}/htdocs <Directory ${SRVROOT}/htdocs/website> <Files wsgi.py> Require all granted </Files> </Directory>