把django项目部署到云服务器window2012上的记录Apache24+mod_wsgi
配置环境描述
本地:windows10、sqlserver2008r2、django2.1.7
服务器:windows2012、sqlserver2008r2、django2.1.7、Apache24、mod_wsgi
部署操作
大致流程
1、在项目基本成型,准备部署前,做一下安全监测:
check --deploy
2、把项目的静态文件全部收集到一处:
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
STATIC_ROOT = os.path.join(BASE_DIR, "static_collected/")
3、把本地环境的安装库先导出:
pip freeze > requirements.txt # requirements.txt是导出来的库文件清单(文件路径就是当前执行的路径)
4、建立虚拟环境
pip install virtualenvwrpper-win
5、在虚拟环境下安装上边的库.
pip install -r requirements.txt # 不要忘了后缀名
Apache和mod_wsgi 设置
参考博客
django在windows下的部署(Apache+mod_wsgi)
安装中出现的异常
1、安装Apache的时候有一个报错:
#安装
httpd.exe -k install -n "apache2.4"
# 删除
httpd -k uninstall -n apache2.4 卸载指定名服务
报错:
Installing the 'apache2.4' service
The 'apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
AH00526: Syntax error on line 34 of C:/Apache24/conf/extra/httpd-ahssl.conf:
SSLProtocol: Illegal protocol 'TLSv1.3'
后来换了一个版本的:OK.
Apache 2.4.41 Win64
[Apache VS16 Binary] httpd-2.4.41-win64-VS16.zip
安装好了 ,但是启动的时候总是报错,其实就像参考文章说的就是c++插件
解决办法:
在 Apache官网 链接中找到 vc_redist_x64/86.exe 并下载。
2、在配置httpd.conf的时候,报错IP端口接听有问题
- 首先排除是否端口占用,我是改成8000了,查了端口也没有被占用;
- 后来经排查是服务器本机的防火墙阻止,关了防火墙就OK了;(再在云服务的安全策略做限制)
备注:如果是建立虚拟环境的,
mod_wsgi-express module-config
备注:如果是在虚拟环境下运行的,安装的时候必须也是在虚拟环境下,否则生成的路径是原始安装python的路径。
3、重启Apache服务后,输入网址测试:http://192.168.0.65:9000(请注意加上/admin)
4、由于局域网部署,高级安全windows防火墙–>入站规则–>新建规则–>端口–>所有程序–>命名