昨天申请了微信公众号,于是动手开发一套自己的后台消息处理。后台服务器是双十一时在盛大云11块买的云虚拟机,配置超低,512MB内存用来跑linux足以了。云上的python是2.6版本,我的windows上的环境是python3 。升级一下python3后又发现wechat_sdk的包是基于python2编写的,如果需要用到这个包需要后面修改basic.py里面的代码,后面再补上如何修改的。毕竟使用wechat_sdk会方便很多,或者用werobot的接口。
配置python
1.下载python3
下载前先安装依赖包
yum install libbz2
yum install readline-devel
yum install sqlite-devel
yum install zlib-devel
yum install openssl-devel
wget https://www.python.org/ftp/python/3.4.0/Python-3.4.3.tar.xz
2.解压,安装
tar xvf Python-3.4.3.tar.xz
chmod 755 -R Python-3.4.3
cd Python-3.4.3
./configure -prefix=/opt/python3
make all
make install
3.删除bin下的python,重新链接
ln -s /opt/python3/bin/python3 /bin/python
4.安装好python3以后,使用yum会失败,因为它默认依然是python2.6
将/usr/bin/yum文件头部的#!/usr/bin/python修改为 #!/usr/bin/python2.6 即可。
部署nginx
nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求。nginx把所有静态请求自己来处理 。然后,nginx将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。
1.下载安装nginx
处理yum源
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
2.安装,运行
yum install nginx
service nginx start
浏览器访问可以检测
3.配置nginx
vim /etc/nginx/nginx.conf
在http{} 中添加server配置,如图:
然后重启nginx服务即可
配置Django
1.安装pip
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
ln -s /opt/python3/bin/pip3.5 /usr/bin/pip3
2.安装Django
pip3 install Django==1.8.5
python -c "import django; print(django.get_version())"
3.配置django
运行报出警告
python manage.py runserver 0.0.0.0:8001
解决方法,在settings.py中注释掉如图:
修改settings.py关掉debug
DEBUG = False
ALLOWED_HOSTS = ['*']
修改wsgi.py加入???是你的项目名称
#!/usr/bin/env python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "????.settings")
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
然后将wsgi.py移动到manage.py目录下
访问网站查看最新版本:
https://www.djangoproject.com/download/
部署uwsgi
uwsgi的作用就类似一个桥接器。起到桥梁的作用。
uwsgi+django也是可以实现WEB服务的。uwsgi也可以直接处理WEB请求。
1.安装uwsgi
pip3 install uwsgi
ln -s /opt/python3/bin/uwsgi /usr/bin/uwsgi
2.配置uwsgi
在manage.py目录下创建django.ini文件,编写如下
vim django.ini
[uwsgi]
socket=:8088
chdir=/home/myweb/myweb
module=wsgi
processes=1
daemonize=uwsgi.log
socket和nginx.conf里面配置的信息一致
processes启动的uwsgi进程数,按需要修改
3.启动uwsgi
uwsgi --ini django.ini
结束进程直接
killall -9 uwsgi
配置wechat_sdk
1.安装
pip3 install wechat_sdk
2.修改代码
因为我需要的是python3运行django,发现报错,根据错误信息修改几处后正常使用。
找到安装后包的位置打开basic.py
from StringIO import StringIO
改为
from io import StringIO
修改def _transcoding为以下
def _transcoding(self, data):
"""
编码转换
:param data: 需要转换的数据
:return: 转换好的数据
"""
if not data:
return data
result = data
return result
ok,基本上部署配置完成后面就是开发django的事情了,使用wechat_sdk只需要很少的工作就能正常工作。
我的微信公众号:xihujun