centos6中简单配置nginx+uWSGI+python3+bottle环境新手教程
作者: 郑晓 分类: Python 发布于: 2014-01-07 20:49 浏览:14,306 评论(18)
这两天在学习python的web开发,一开始是选择的是django,好不容易入门了,发现其与mysql.connector不兼容。裤子都脱了居然闹这样。。。
于是改用Bottle框架,这个框架对python3.3支持比较好一些。现在就简单记录一下我在centos6.4上的环境搭建之路,准备脱。
(教程中所有的~$只是代表linux命令输入的开始)
1.第一步:安装nginx。 我这人比较懒,所以nginx安装我选择的是使用lnmp一键安装包。(百度搜索lnmp第一个就是) 这样,nginx、mysql、php也都有了。安装照着它的教程来就是了。安装好后 访问你的服务器地址如http://localhost/ 或http://你的服务器ip/ 显示一个带有大大的nginx图片的页面就说明安装正常。
2.第二步:编译安装python3.3。由于我的centos6.4默认安装的是python2.6,所以我要安装个3.3。
1) 下载python3.3
~$ wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
2) 解压、进入目录、创建安装目录
~$ tar -zxvf Python-3.3.0.tgz
~$ cd Python-3.3.0
~$ mkdir /usr/local/python33
3) 编译、安装。(–prefix 指定安装到的位置;如果是centos5或其它版本,有可能在安装完后python中import zlib时会提示no module named zlib,需要在这条语句后面追加参数 –with-zlib)
~$ ./configure –prefix=/usr/local/python33
~$ make && make install
4) 设置,因为安装完后 系统默认执行python命令时还是启动的2.6,我们需要把默认的2.6从bin目录中转移走,换成我们的python3.3。
~$ mv /usr/bin/python /usr/bin/python26
~$ ln -s /usr/local/python33/bin/python3.3 /usr/bin/python
以上两句 第一句 将原系统中的python重命令为python26,第二句创建软连接(快捷方式)指向到我们新安装的python3.3。这样在系统命令行中两个版本python都可以用。运行python将启动python3.3,运行python26将启动python2.6。
3.第三步,编译安装uWSGI。
1) 下载uwsgi
~$ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
2) 解压、进入目录
~$ tar zxvf uwsgi-latest.tar.gz
~$ cd uwsgi-2.0
3) 编译安装
~$ yum install python-devel
~$ make
4) 配置、修改权限
~$ cp uwsgi /usr/bin/
~$ chmod a+x /usr/bin/uwsgi
~$ groupadd -g 51 uwsgi
~$ useradd -g 51 uwsgi
4.第四步,配置nginx
~$ vi /usr/local/nginx/conf/nginx.conf
在server中加入一段
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
像这样:
5.第五步,重启你的nignx: ~$ service nginx restart
重新访问你的服务器地址如http://localhost/ 或http://服务器ip/ 如果显示一个大大的502,说明应该正常。。
6.第六步,安装Bottle框架。安装这个bottle很简单,去它官网下载这个bottle.py文件,直接放到你的网站目录就行了,我们现在下载后放到default中。测试期间 使用lnmp默认的网站目录就行。默认网站目录在/home/wwwroot/default/中。
我比较喜欢定位到default后再支持wget下载。
~$ cd /home/wwwroot/default
default$ wget https://github.com/defnull/bottle/raw/master/bottle.py
7.第七步,现在可以编写你的python项目程序了。记得也放到这个default目录中(只是测试时)。
比如你写了一个hello world程序如下:
from bottle import route, default_app
@route('/')
def hello():
return 'hello world!'
application = default_app()
我们把这个文件命名为hello.py吧。。(注意它是/home/wwwroot/default/hello.py)
8.第八步,运行uWSGI。(注意现在我们当前目录还定位在default中)
$ uwsgi -s 127.0.0.1:8080 -w hello
回车后检查回显的信息中没有报错信息(你的hello.py中如果有语法错误等也将会显示在这些信息中,一般它的报错在倒数第四行以上),且最后一行提示spawned uwsgi worker 1 …. 说明你的uwsgi已经成功启动!
现在依旧打开你的http://localhost/ 或http://服务器ip/ 看看是不是输出hello world了? 恭喜,第一个bottle app已经完成~~~!!!
上面启动uwsgi的方式不能关闭命令框,关闭的话uwsgi也将停止,访问页面时还是502。 要想把uwsgi放到后台,追加参数 –daemonize /var/log/uwsgi.log 这样,运行完命令后,不会显示那一片信息,像是什么都没做。 所有的回显信息都以日志的信息保存在uwsgi.log文件中。
linux的整个过程中,如果你想知道某个文件xxx的路径,可以用查找命令 find / -name xxx 。
happy!
本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。
本文永久链接: https://www.zh30.com/centos6-simple-to-configure-nginx-uwsgi-python3-bottle-environment-tutorials.html
centos6中简单配置nginx+uWSGI+python3+bottle环境新手教程:目前有18 条留言
Internal Server Error 照着您的教程操作的,,为嘛会报这个错呢
这个说不定是你程序有问题,程序报错了,但nginx关闭了具体的错误输出。你检查一下程序看看?
我想和你做个友链怎么联系你啊!我也是个人博客。
在这里留言就是联系我了。。 😕 你要什么词。
我的词和链接:
刘俊个人博客
链接是我上面回复时填的网址,我在这个框里面回复不能写链接。
你的呢?
已添加。 我的用“个人博客”。
对了,能不能把首页活跃用户,我的“geniusalien”去掉呢。现在用站长工具查,我在你网站的链接加了nofollow。我们现在是友情链接。
当年在学校学的编程都忘的差不多了,希望博主坚持
嗯,最近懒了,没怎么坚持更新 😥
这个太复杂,搞不懂,好像有个可视化的linux管理系统
像wdcp这样的?现在这个博客就是wdcp的lnmp管理后台。
路过学习
python挺好的
我前几天搭建了一个,已经成功了。
那应该祝贺一下。 😛
没怎么用过centos,现在基本用的都是SUSE的linux系统。
支持博主,我又来逛逛啦!
希望博主的网站越办越好!
http://www.supermaly.com