在虚拟主机上运行Flask-Twip
关于Flask-Twip
的介绍请参考前一篇文章。
Flask-Twip
支持在普通的虚拟主机上运行,通过虚拟主机的CGI
界面运行。
什么是CGI
简单地说CGI
界面(Common Gateway Interface)就是在每次HTT请求时,由HTTP server调用一个脚本,在调用脚本时将客户的HTTP request headers信息放在环境变量中,然后将脚本到stdout
的输出当作HTTP response返回给客户端。
显然对每个HTTP请求都会进行一次fork操作,CGI脚本的性能会非常糟糕。不过对API proxy来说足够了。
如何在普通虚拟主机上搭建Flask-Twip
要在虚拟主机上搭建Flask-Twip,需要虚拟主机提供了SSH访问以方便搭建环境。
准备工作:安装Python
Flask-Twip
是Flask
框架的一个扩展,Flask
本身已经支持Python3,但是它依赖的werkzeug
目前最高仅支持Python2.7。为了方便未来支持Python3,Flask-Twip
本身仅支持Python2.7。
首先判断Python版本:ssh
到服务器上,执行python --version
。若版本不等于Python2.7,需要手动安装Python2.7。具体步骤不在这里说明。
Python2.7安装完毕后,执行以下命令安装distribute
、pip
和virtualenv
curl http://python-distribute.org/distribute_setup.py | python curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python pip install virtualenv
创建虚拟环境
虚拟环境(virtualenv
)是Python的一个常用工具,用于自动化创建一个隔离的Python运行环境。
在任意位置执行virtualenv venv
,其中venv
是你需要的虚拟环境的名字(名字本身不重要)。virtualenv
会在创建虚拟环境时输出信息。
创建完毕后执行source venv/bin/activate
。你的命令行提示符会加上一个(venv)
字样提醒你目前是在Python的virtualenv
里。
安装Flask-Twip
pip install Flask-Twip
准备CGI脚本
请参考https://github.com/yegle/flask_twip/blob/master/examples/cgi/twip.cgi脚本。
注意:脚本头部的#!/usr/bin/env python
需要修改为你虚拟环境内的Python(例如你创建的虚拟环境在/home/yegle/venv/
,那么脚本头部应该修改为#!/home/yegle/venv/bin/python
)
样例twip.cgi
脚本中使用的是FileBackend
,这是与以前twip的PHP版一样的文件形式存储。脚本中be = FileBackend(folder='/home/yegle/cgi-bin/tokens')
一句指定了backend的存储目录是/home/yegle/cgi-bin/tokens
。你可以根据你的需要进行修改。
配置文件
配置文件请参考https://github.com/yegle/flask_twip/blob/master/examples/settings-example.py。需要填写你的OAuth Key/Secret。
配置文件中的SECRET_KEY
变量请使用随机字符串。这个是Flask的session加密用key
将修改好后的配置文件与CGI脚本放在你的主机商指定的cgi-bin目录,并给twip.cgi
脚本加上可执行权限(chmod +x twip.cgi
)。
测试
打开浏览器访问该CGI脚本,进行测试
测试站点
我已搭建了一个测试站点供大家测试。由于域名被DNS污染,此测试站点仅做可行性测试 https://yegle.net/cgi-bin/twip.cgi/
问题与解答
如有问题可以在留言提出,我会尽量作答。提问前请先学习提问的智慧,否则我会直接删除。
原文:http://blog.yegle.net/2012/11/22/run-flask-twip-on-virtual-host/
虽然说的是虚拟主机,可是实际上是需要root权限来做一些工作的,一般的同学做起来会比较困难
当然不需要
博主,我今天看见了一个Twitter的API项目:Embr,自己搭建了一个感觉很不错。
项目主页:
https://code.google.com/p/embr/
嗯,这个以前我介绍过。
https://code.google.com/p/floydhosts/
“GFW hosts”
https://code.google.com/p/floydhosts/downloads/list
“fbhosts HOSTS 21 hours ago 21 hours ago 1.4 KB
hosts HOSTS 22 hours ago 22 hours ago 19.3 KB
hosts.txt HOSTS 23 hours ago 23 hours ago 50.1 KB ”
2012年11月23日
繞過GFW facebook api 如何建立?博主好多文章都介紹 推 的建立沒FB
非死不可太麻烦,我玩不转,不怎么玩,呵呵,没关注过。