您的位置:首页 > 运维架构 > Apache

Django-Apache-Windows 部署(有无phpstudy都适用)

2018-03-12 23:27 423 查看

首先,说一下背景。(文字有点多,干货提醒)

    以前使用php开发,在服务器上用phpstudy快速配置;然后喜欢上了python,然后就想着把爬虫和web整合起来,然后就用Django框架。
    但是,我想在服务器上使用php的情况下,也能用Django框架,同样,Django也能在Apache环境下部署。
    网上有很多Django在Apache环境下部署的教程,我把我读过的文章并把整合自己经历的坑,写了这篇blog。

    运行环境:

        系统:Windows Server 2012 R2 (阿里云学生服务器)

        服务:Apache 2.4.29(64位)(整合在phpstudy中)

        语言:Python 3.6 (64位)+Django 2.0.2框架

        (这边Apache和Python必须是一样的位制,不然后面可能报错哦)

    准备工作:    

        Apache:Apache官方网站:http://httpd.apache.org/(根据自己需要下载相应版本)

        mod_wsgi模块: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi (根据自己需要下载相应版本

实战:

1、安装Apache:
    本人使用的phpstudy整合的Apache,但是默认都是32位的,所以,我需要先把默认32位的Apache改为64位的。

    解压下载好的64位Apache,然后替换phpstudy中的Apache文件夹(如果你没有使用phpstudy,直接解压出来就可以了),然后修改conf文件夹下httpd.conf文件:

    具体要修改的几项:ServerRoot:改为Apache目录地址(eg:"C:/phpstudy/Apache")

ServerName:改为localhost(去掉#)

DocumentRoot:修改为你的网站根目录地址(也可以改为phpstudy的WWW文件夹)(eg:"C:\phpstudy\WWW")

ScriptAlias:改为Apache下cgi-bin文件夹的地址(eg:"C:/phpstudy/Apache/cgi-bin")

有两个<Directory 需要修改:

第一个是靠近DocumentRoot(下面)的:改为网站根目录地址(eg:"C:\phpstudy\WWW")

第二个是靠近ScriptAlias(下面)的:改为Apache下cgi-bin文件夹的地址 (eg:"C:/phpstudy/Apache/cgi-bin")
      PS:(当然也可以参考phpstudy中以前默认Apache的配置文件改),(可能讲的不是很详细,比如安装VC库之类的,我这就不介绍了,可以单独百度),(phpstudy用户,改了Apache后出现服务冲突之类的问题,不妨重新安装一下phpstudy,记得备份

2、安装mod_wsgi模块:
        定位到存放下好的mod_wsgi模块的目录,然后pip install就可以了。

3、配置属于项目的conf文件:        定位到python安装目录下的Scripts目录:

            使用命令:mod_wsgi-express module-config
       首先,将得到的三行内容复制出来,在Apache的httpd.conf同目录下新建一个conf文件,可以以自己Django项目的名字命名(每一个项目都有一个属于自己的conf文件),在conf文件中将上面命令得到的三行内容粘贴进去。(在httpd.conf或者项目的conf文件中都可以)LoadFile "c:/program files/python36/python36.dll"
LoadModule wsgi_module "c:/program files/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/program files/python36"
        接着,在conf文件下面写一些其他配置信息:#mod_wsgi设置
LoadFile "c:/program files/python36/python36.dll"
LoadModule wsgi_module "c:/program files/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/program files/python36"
#指定website的wsgi.py配置文件路径
WSGIScriptAlias / D:/allFile/Python_Project/Web/Movie/Movie/wsgi.py
#指定项目路径
WSGIPythonPath D:/allFile/Python_Project/Web/Movie
<Directory D:/allFile/Python_Project/Web/Movie>
<Files wsgi.py>
Require all granted
</Files>
</Directory>           最后,在httpd.conf文件中加入如下命令将项目的conf文件包含进去:Include conf/project_movie.conf

闲谈:
    其实小网站还是php比较好,Django的优势在于python。
    仔细一想,其实算是瞎折腾,感觉好像屏蔽掉了php,有没有phpstudy都一样,但是有了phpstudy直接就有了mysql,还能一键启动,还是蛮实用的。
    还有很多没有深入了解,比如如何在Django和php中切换,如何在多个Django项目中切换。

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django Apache 服务器 Web