当前位置:博客首页>>Python >> 阅读正文

centos6中简单配置nginx+uWSGI+python3+bottle环境新手教程

作者: 郑晓 分类: Python 发布于: 2014-01-07 20:49 浏览:13,760 评论(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;
}

像这样:
nginx-uwsgi-config

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已经成功启动!
uwsgi-start
现在依旧打开你的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 条留言

用户评论头像 实用的二货发表于 2016年03月03日 14:28[回复]

Internal Server Error 照着您的教程操作的,,为嘛会报这个错呢

    用户评论头像 郑晓发表于 2016年03月03日 14:50[回复]

    这个说不定是你程序有问题,程序报错了,但nginx关闭了具体的错误输出。你检查一下程序看看?

用户评论头像 geniusalien发表于 2014年02月27日 15:53[回复]

我想和你做个友链怎么联系你啊!我也是个人博客。

    用户评论头像 郑晓发表于 2014年02月28日 08:00[回复]

    在这里留言就是联系我了。。 😕 你要什么词。

      用户评论头像 geniusalien发表于 2014年02月28日 08:35[回复]

      我的词和链接:

      刘俊个人博客

      链接是我上面回复时填的网址,我在这个框里面回复不能写链接。

      你的呢?

        用户评论头像 郑晓发表于 2014年02月28日 11:54[回复]

        已添加。 我的用“个人博客”。 :mrgreen:

          用户评论头像 geniusalien发表于 2014年02月28日 12:30[回复]

          对了,能不能把首页活跃用户,我的“geniusalien”去掉呢。现在用站长工具查,我在你网站的链接加了nofollow。我们现在是友情链接。

用户评论头像 选床垫发表于 2014年02月20日 13:32[回复]

当年在学校学的编程都忘的差不多了,希望博主坚持

    用户评论头像 郑晓发表于 2014年02月21日 08:13[回复]

    嗯,最近懒了,没怎么坚持更新 😥

用户评论头像 聚划算发表于 2014年02月07日 13:59[回复]

这个太复杂,搞不懂,好像有个可视化的linux管理系统

    用户评论头像 郑晓发表于 2014年02月21日 08:16[回复]

    像wdcp这样的?现在这个博客就是wdcp的lnmp管理后台。

用户评论头像 王启星发表于 2014年02月01日 17:04[回复]

路过学习

用户评论头像 xyb发表于 2014年01月22日 15:02[回复]

python挺好的

用户评论头像 基坑支护发表于 2014年01月20日 19:41[回复]

我前几天搭建了一个,已经成功了。

    用户评论头像 郑晓发表于 2014年01月20日 21:28[回复]

    那应该祝贺一下。 😛

用户评论头像 个人博客发表于 2014年01月18日 21:07[回复]

没怎么用过centos,现在基本用的都是SUSE的linux系统。

用户评论头像 山东发电机组发表于 2014年01月16日 08:26[回复]

支持博主,我又来逛逛啦!
希望博主的网站越办越好!
http://www.supermaly.com

发表评论

change vcode