apache+mod_wsgi+django的环境配置

    在原先使用django开发完成项目的时候需要部署到服务器上面所以选择了apache和mod_wsgi的搭配,这些项目在网上有很多发行的二进制版本,当时没有怎么考虑就直接从网上下载版本下来,全部同一种vc编译器的版本的64位程序,配置好后整个项目可以运行起来后,之后就发现了每次停止服务的时候就会非常卡顿,多次重启服务后,apache进程还会多了几个,在询问了mod_wsgi的作者之后才了解了问题。

    首先是选择django的版本,一般来说是选择比较新的版本,之后是python的版本,这里python的版本有2.7和3.6的这两种版本,之前是选择2.7的版本,django本身也是有支持3.6的版本,所以建议都选择3.0以上的版本,这个会是以后的主流。接下来就是apache的版本,选择2.4的版本,在这里apache官网上面是没有提供二进制的发行版本。网络上有很多发行版本,比如ApacheLounge,ApacheHaus。在这里如果是使用mod_wsgi这个模块就一定要选择ApacheLounge网站上面的apache发行的二进制版本,其它发行的版本没有办法编译mod_wsgi。mod_wsgi到github上面下载源码直接安装到自己的python里面。mod_wsgi也可以编译成so文件复制到apache里面作为一个模块,这两种方式没有什么差别。

    介绍一些基本的软件。

    python:https://www.python.org/downloads/windows/

    apache:http://www.apachelounge.com/

    django:https://www.djangoproject.com/

    mod_wsgi:https://github.com/GrahamDumpleton/mod_wsgi

    mod_wsgi doc:http://modwsgi.readthedocs.io/en/develop/index.html

    以上的vc版本要全部是要一致,比如全是vs2012的,32位或者64位的。自己的电脑上面需要安装微软的编译器不然无法安装mod_wsgi和其它的第三方库。

     mod_wsgi的使用在github的官网上面有详细的说明,这里介绍的是编译成so文件和安装到python里面,编译成so文件的话,电脑上面有微软的编译器,然后在源码目录里面有win文件夹,这里面的文件选择对应的环境修改里面的内容,执行命令就可以编译成功了,这种方式作者已经不推荐了。安装到python里面比较简单。如果是下载了源码的话执行:pip setup.py install,如果是使用pip安装的话:pip install mod_wsgi,这里有个前提条件就是c盘里面有apache二进制的文件夹名字就是Apache24或者Apache22,或者是设置环境变量MOD_WSGI_APACHE_ROOTDIR 设置apache的路径,具体的参考说明:

https://github.com/GrahamDumpleton/mod_wsgi/issues/188

python里面安装完了mod_wsgi或者是个so文件,就需要配置apache的配置文件,添加一下信息

LoadModule wsgi_module modules/mod_wsgi-py27.so  (这个是模块的路径,windows下是pyd)

WSGIPythonHome /usr/local/lib  (python的安装目录或者是虚拟环境)

<Directory /usr/local/wsgi/scripts>
Order allow,deny
Allow from all
</Directory>    (设置脚本目录可以访问)

WSGIScriptAlias /myapp /usr/local/wsgi/scripts/myapp.wsgi  (这个命令是设置访问的地址和执行的脚本,在下载的mod_wsgi的源码里面有一些模板)

在命令行下面可以使用mod_wsgi-express来获取配置信息,windows下没有启动服务这样的命令,

之后启动一个apache就可以了运行起来了,可以看到一些效果。

像这种的环境配置个人觉得比较的繁琐不是很简单,要是简单的话就好了。最后加上我当时解决问题的时候跟mod_wsgi的作者询问一些问题,主要是解决环境配置问题。

https://github.com/GrahamDumpleton/mod_wsgi/issues/215

以后有什么需要的在补充。

猜你喜欢

转载自my.oschina.net/u/2000932/blog/1507215