设为首页 收藏本站
查看: 591|回复: 0

[经验分享] Python Django mod_wsgi Windows 部署过程 备忘

[复制链接]

尚未签到

发表于 2017-5-3 09:43:07 | 显示全部楼层 |阅读模式
部署环境:Windows2003Server
1. 安装Apache 2.2
2. 安装PYTHON 2.7.4
注意把PYTHON的安装目录添加到环境变量,否则命令行下不支持 python
3. 安装DJANGO
解压到C盘,进入django目录,执行命令
python setup.py install

4. 下载mod_wsgi.so,复制粘贴到APACHE安装目录 modules目录
5. 配置httpd.conf 添加

Listen 80
#必须添加这个端口的监听 否则apache不会启动这个端口
Listen 8181
#加载 mod_wsgi
LoadModule wsgi_module modules/mod_wsgi.so
####### PHP需要用到的 #############
#加载 mod_fcgid  因为我安装的是 php vc9
LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .fcgi .php
#php.ini的存放目录
FcgidInitialEnv PHPRC "C:/php"
# 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
#php-cgi每个进程的最大请求数
FcgidMaxRequestsPerProcess 1000
#php-cgi最大的进程数
FcgidMaxProcesses 3
#最大执行时间
FcgidIOTimeout 120
FcgidIdleTimeout 120
#php-cgi的路径
FcgidWrapper "C:/php/php-cgi.exe" .php
AddType application/x-httpd-php .php .html .htm
####### PHP需要用到的 #############

<VirtualHost *:8181>
ServerName 服务器名称
ServerAlias 服务器名称:端口
DocumentRoot E:/PYTHON/infimob/src
WSGIScriptAlias / E:/PYTHON/infimob/wsgi/infimob.wsgi
Alias /robots.txt E:/PYTHON/infimob/src/infimob/static/robots.txt  
Alias /favicon.ico E:/PYTHON/infimob/src/infimob/static/favicon.ico
Alias /media/ E:/PYTHON/infimob/src/infimob/media/
#静态文件不要用mod_wsgi Serve,在DJANGO里配置
#    Alias /static/ E:/PYTHON/infimob/src/infimob/static/
<Directory E:/PYTHON/infimob/src/infimob/static>  
Order deny,allow  
Allow from all  
</Directory>  
<Directory E:/PYTHON/infimob/src/infimob/media>  
Order deny,allow  
Allow from all  
</Directory>
<Directory "E:/PYTHON/infimob/src">
Order Deny,Allow
Allow from all
</Directory>
<Directory "E:/PYTHON/infimob/wsgi">
Order Deny,Allow
Allow from all
</Directory>
#跟apache默认的日志分离
ErrorLog C:/Apache2.2/logs/pythonerror.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog C:/Apache2.2/logs/pythonaccess.log combined
</VirtualHost>

6. 配置Python工程
拷贝整个工程源码到合适的目录,在工程目录下创建目录wsgi,在该目录下新建infimob.wsgi(工程名称.wsgi),内容如下:

# complete_project.wsgi is configured to live in projects/complete_project/deploy.
# If you move this file you need to reconfigure the paths below.
import os, sys
sys.path.append('E:/PYTHON/infimob/src')
os.environ['DJANGO_SETTINGS_MODULE'] = 'infimob.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()


更改工程settings.py

DEBUG = TEMPLATE_DEBUG = False
#用来接收报错信息
ADMINS = (
('Neil Cheung', 'address@gmail.com'),
)
#使用GMAIL服务器发送邮件
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'address@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
#一定要配置好这个,否则等着500吧
ALLOWED_HOSTS = ['localhost','127.0.0.1','210.209.124.131']


重启Apache即可
DJANGO 解码出错 UnicodeDecodeError  解决办法:
在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为

# encoding=utf8   
import sys   
reload(sys)   
sys.setdefaultencoding('utf8')   

生产环境配置过程中遇到3个头疼的问题,记录如下:
1. Apache启动后,http://localhost:8181/admin直接500
原因:settings.py文件里没有配置 ALLOWED_HOSTS,这是一个安全选项
解决办法:

#一定要配置好这个,否则等着500吧
ALLOWED_HOSTS = ['localhost','127.0.0.1','210.209.124.131']


2. 访问路径最后必须要添加斜杠(/),否则就报500
原因:默认情况下是不需要添加斜杠的,APPEND_SLASH会自动补,原因是 urls.py 文件里添加了多余的配置
解决办法:从urls.py 入手检查。。去掉多余的,不知道用途的配置
3. django TinyMce弹出框空白,然后自动下载弹出的页面
原因:Apache httpd.conf配置文件里配置 mod_wsgi的时候配置了serve 静态文件的代码
解决办法:去掉server静态文件的代码即可

#静态文件不要用mod_wsgi Serve,在DJANGO里配置
#    Alias /static/ E:/PYTHON/infimob/src/infimob/static/
#    <Directory E:/PYTHON/infimob/src/infimob/static>  
#   Order deny,allow  
#    Allow from all  
#    </Directory>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372389-1-1.html 上篇帖子: python通信+多线程动手项目——多用户IM 下篇帖子: 《简明python教程 》总结(一)--简介(特点、安装、使用)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表