VPS配置python web环境真吐血 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
likai
V2EX    Python

VPS配置python web环境真吐血

  •  
  •   likai 2013-07-26 21:44:54 +08:00 12723 次点击
    这是一个创建于 4535 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新手想搭建一个nginx+uwsgi+mysql+flask的环境。
    在GOOGLE的帮助下一个下午还没成功跑起来。
    有没有什么一键安装的SHELL之类的?
    环境CENTOS
    50 条回复    2016-07-24 00:49:02 +08:00
    skyworker
        1
    skyworker  
       2013-07-26 22:12:03 +08:00 via Android   1
    Centos的yum体系是绑定Python版本,用Python的web项目,最好用Debian
    likai
        2
    likai  
    OP
       2013-07-26 22:33:23 +08:00
    @skyworker

    Debian?
    为啥啊?求解惑。

    只是因为YUM么?
    ipconfiger
        3
    ipconfiger  
       2013-07-26 22:34:27 +08:00
    稍微熟悉点linux貌似不是啥难事,centos唯一麻烦一点是替换python版本,还有yum库版本都太旧
    不想折腾ubuntu server也不错啊
    jezal
        4
    jezal  
       2013-07-26 22:34:54 +08:00
    这不奇怪,本来 Python Web 部署比较麻烦,特别是咱们这样的新手。不过还好,由于 VPS 磁盘损毁我今天又部署了下 nginx uuwsgi mysql django 环境,每一个部分都有很多暗坑。请楼主不要着急,一一击破。有问题请贴出来,我能回答的尽量回答。
    likai
        5
    likai  
    OP
       2013-07-26 22:43:44 +08:00
    @jezal 先谢你了,有问题一定@你

    下了个军哥lnmp.然后准备更改他的脚本把不需要的PHP相关的去掉,
    系统换成@skyworker说的Debian。
    ericFork
        6
    ericFork  
       2013-07-26 22:53:10 +08:00
    ubuntu 12.04, nginx, gunicorn, mysql, flask
    adow
        7
    adow  
       2013-07-26 22:55:16 +08:00
    我一直都是全程yum的,同事们都很鄙视我
    octopus_new
        8
    octopus_new  
       2013-07-26 23:05:23 +08:00
    CentOS怎么了....., 个人认为也没什么, python版本就替换一下而已嘛, 不用YUM也活得挺好的啊. Debian也ok, 这完全是看团队或者个人习惯而已。有的人就Debian系, 有的人就Redhat系, 萝卜青菜嘛.....
    julyclyde
        9
    julyclyde  
       2013-07-26 23:06:33 +08:00 via iPad
    centos5里yum依赖python包是2.4的
    装epel的python26包即可
    tangyuan
        10
    tangyuan  
       2013-07-26 23:36:52 +08:00
    所以我喜欢用bottle + sqlite,当然我的应用非常小...
    xdata
        12
    xdata  
       2013-07-26 23:47:07 +08:00
    服务器系统一直在用CentOS.
    CentOS下的Python什么时候成为问题了?
    不想自己编译, 自己配置, Python环境, 请直接使用各种方便的Python环境管理工具来管理.
    imcj
        13
    imcj  
       2013-07-26 23:47:53 +08:00
    如果习惯Vagrant做开发or测试环境的话,你因该有一个自动部署脚本,部署还是问题?
    paicha
        14
    paicha  
    PRO
       2013-07-27 00:06:18 +08:00 via Android
    静等楼主配置手记。
    clowwindy
        15
    clowwindy  
       2013-07-27 00:40:04 +08:00   1
    fucker
        16
    fucker  
       2013-07-27 02:01:02 +08:00
    我的环境是ubuntu + apache + wsgi + webpy(bottle) + mysql (sqlite,postgesql)
    这种东西配置起来大同小异吧,看见上面说的,yum并不影响啥。撸主你说的一键安装shell没见过。
    我配置的时候是apache,mysql 各自分别安装,wsgi也是apt-get来的。webpy,mako,MySQLdb啥的都是easy_install ,主要环节是apache或者你的nginx,配置httpd.conf文件,注意做好alias,模块加载,项目路径就行了。
    SR1
        17
    SR1  
       2013-07-27 03:00:19 +08:00
    身为一个Linux入门小白,我已经折腾好几个晚上了,还没搭好环境。

    目标是LinuxMint + Apache + Python + MySQL + Mod_Python

    现在卡在Mod_Python编译上,make的时候一直提示缺少头文件,比如apr.h,比如Python.h
    可是apr.h已经通过软连接将他们所在的文件夹连接到/usr/include/ 里了,还是提示找不到,
    没搞懂gcc查找头文件的机制,只能把每个文件都连接到/usr/include/ 里。
    而Python.h这个头文件完全没找到,重装了Python-dev也没用,真心给跪了。

    过路的大神顺路搭救下我,谢谢
    swulling
        18
    swulling  
       2013-07-27 03:39:10 +08:00   1
    @SR1 mint就是ubuntu啊,直接apt-get就完了。。。

    apt-get install libapache2-mod-python

    编译有意思么<_<
    swulling
        19
    swulling  
       2013-07-27 03:43:17 +08:00   2
    likai
        20
    likai  
    OP
       2013-07-27 05:00:09 +08:00 via Android
    @SR1
    python.h是不是在python/includ里面那个?
    fucker
        21
    fucker  
       2013-07-27 05:20:34 +08:00
    @SR1 mod_python 真心不好用。。。
    fucker
        22
    fucker  
       2013-07-27 05:21:15 +08:00
    @swulling 咦,西南大学的同志?
    vibbow
        23
    vibbow  
       2013-07-27 05:25:14 +08:00   1
    linux 耗费了多少程序员的光阴:装完一个程序包、发现需要再装一个程序包、发现需要再装一个程序包、最后都不知道往电脑里装了多少程序包、最后再费点时间写个控诉+炫耀的安装攻略
    cctvsmg
        24
    cctvsmg  
       2013-07-27 05:48:35 +08:00
    @vibbow 精辟
    paloalto
        25
    paloalto  
       2013-07-27 08:17:03 +08:00
    之前写过一个LNMP(Nginx、MySQL、PHP、phpMyAdmin) + Python + web.py的。

    http://www.douban.com/note/233957765/
    SR1
        26
    SR1  
       2013-07-27 08:19:10 +08:00
    @swulling 大谢啊!!!

    之前看的Django Web 开发指南,上面写着需要装Apache,于是 apt-get 了一个,然后说要装mod_python,所以再祭出 apt-get ,发现没找到,Google 之… 然后就看到了mod_python 的文档 + 一些其他博客资料,说使用mod_python 需要自行编译,用apt-get 方式得到的Apache 缺少什么什么源码,如果是自行编译的话就包含所需的,于是又把Apache卸了,恶补了编译知识,开始了编译的不归路,落泪。

    apr , apr-util , httpd , mod_python 一路下来,就当成长了。

    (期间默默吐槽了无数遍Linux下的环境搭建的不人性化,@#$%^&@#$%^&
    SR1
        27
    SR1  
       2013-07-27 08:27:27 +08:00
    @likai 后来把Python.h找到了,然后在make 的时候又出现一堆问题,不是warning就是error,表示完全看不懂了

    In file included from /usr/include/python2.7/Python.h:8:0,
    from /home/sr1/下载/mod_python-2.7.8/src/include/mod_python.h:77,
    from mod_python.c:54:
    /usr/include/python2.7/pyconfig.h:1161:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
    /usr/include/features.h:215:0: note: this is the location of the previous definition
    In file included from mod_python.c:54:0:
    /home/sr1/下载/mod_python-2.7.8/src/include/mod_python.h:93:1: error: unknown type name ‘pool’
    /home/sr1/下载/mod_python-2.7.8/src/include/mod_python.h:96:33: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘python_module’
    In file included from /home/sr1/下载/mod_python-2.7.8/src/include/mod_python.h:99:0,
    from mod_python.c:54:
    /home/sr1/下载/mod_python-2.7.8/src/include/util.h:57:1: error: unknown type name ‘array_header’
    In file included from /home/sr1/下载/mod_python-2.7.8/src/include/mod_python.h:100:0,
    from mod_python.c:54:
    /home/sr1/下载/mod_python-2.7.8/src/include/tableobject.h:69:2: error: unknown type name ‘table’
    /home/sr1/下载/mod_python-2.7.8/src/include/tableobject.h:70:2: error: unknown type name ‘pool’
    /home/sr1/下载/mod_python-2.7.8/src/include/tableobject.h:77:52: error: unknown type name ‘table’
    ………………………………
    ………………………………
    ………………………………
    ………省略一堆…………
    ………………………………
    ………………………………
    ………………………………
    kk71
        28
    kk71  
       2013-07-27 08:34:07 +08:00
    我都自己编译的呢。
    有的vps自带精简优化的ubuntu server版本,那就好办事了。
    raptor
        29
    raptor  
       2013-07-27 12:31:18 +08:00
    centos里的python版本太老,不方便。
    当然一定要用的话也不是不可以。
    源码编译一下,然后用virtualenv -p用这个高版本的python弄一个单独的环境。
    nginx配置反向代理很简单的,uwsgi不好弄,建议换gunicorn,非常简单。
    不要考虑什么一键安装之类的东西,后遗症很多,还是自己把要用的各个东西搞懂为好。
    raptor
        30
    raptor  
       2013-07-27 12:35:04 +08:00
    gunicorn+nginx/apache的配置可以参考我以前为web.py写的一个文档:https://github.com/raptorz/webpy.github.com/blob/master/cookbook/gunicorn-apache-nginx.zh-cn.md
    pianai
        31
    pianai  
       2013-07-27 12:46:05 +08:00
    教程 apache2+mod-wsgi+django环境配置 不过ubuntu 系统下的
    http://www.pianai.net/?p=11
    iCodex
        32
    iCodex  
       2013-07-27 13:08:14 +08:00
    @ericFork 我也是用 gunicorn 这样nginx直接反代过去就好了
    另外 centos也不是不可以,只是编译python时最后一步用make altinstall,这样就不会和系统自带的冲突,自己的程序再改改python路径就好。
    ericFork
        33
    ericFork  
       2013-07-27 14:12:21 +08:00
    @iCodex 是啊,gunicorn 多方便

    大多教程都是 uWSGI,mod_python, mod_wsgi,简直太费力,浪费多少非 SA 的程序员的光阴
    swulling
        34
    swulling  
       2013-07-29 13:19:34 +08:00
    @fucker 不是
    @SR1 现在大家都用gunicorn这种高级工具啦

    对Linux小白提一个真心的建议,永远避免任何形式的自己编译。。。只用现成的包管理,不会出问题的
    rrfeng
        35
    rrfeng  
       2013-07-29 13:46:29 +08:00
    @swulling
    那也只能永远留在小白阶段了……
    liuhang0077
        36
    liuhang0077  
       2013-07-29 13:49:10 +08:00
    @rrfeng 让小白编译 对小白简直是莫大的折磨。。 我一想推荐rpm 如果是专门学linux的就另当别论了
    swulling
        37
    swulling  
       2013-07-29 17:29:17 +08:00
    @rrfeng 先让服务跑起来,其实就算是资深SA又如何,放着包管理不去用的人去编译,简直吃饱了撑的。。

    如果想调整编译参数,也要最好选择Arch的ABS那种方便管理的系统!

    另外如果你管理1k台机器,你无论如何都得选择某种二进制包,总不能让每台机器自己呼呼的编译吧。。哪怕是make后tar下,都比呼呼编译强,当然这就是自己又发明了下包管理而已
    stackpop
        38
    stackpop  
       2013-07-29 19:28:48 +08:00
    我一直想开发一个一键部署的集成工具,哈哈,可惜执行力不够
    0bit
        39
    0bit  
       2013-07-29 21:23:23 +08:00   1
    要涉及到多个版本的Python的话,就用pythonbrew或者新推荐的pyenv
    如果不涉及到多个Python版本,只是多个项目的话,推荐virtualenv以及virtualenvwrapper。
    不管怎么样,安装的时候,一律用pip install。
    对新手来说,不太复杂吧。
    另外,也真心喜欢gunicorn,纯python的,比uwsgi什么的要友好得多。
    不嫌麻烦的话,也可以再装一个supervisor来管理进程。
    manoon
        40
    manoon  
       2013-07-29 22:29:13 +08:00
    所以,我配置完了。。。。松一口气。然后,一直都不敢乱动那几台VPS。重新配置,又得重新学习一遍。累得要死!!!
    janxin
        41
    janxin  
       2013-07-29 23:10:32 +08:00 via iPad
    linode的文档非常值得参考,即使非linode机器也可以用
    lw9956164
        42
    lw9956164  
       2013-07-29 23:31:33 +08:00
    搭建过 ubuntu gunicorn+flask表示毫无压力
    mengzhuo
        43
    mengzhuo  
       2013-07-30 09:01:35 +08:00
    virtualenv+pip用来架设Python webserver表示没有半点压力
    pythoner
        44
    pythoner  
       2013-07-30 12:59:43 +08:00
    编译安装python2.7,替换系统默认python版本
    但是由于yum 默认要用python2.4,所以要修改yum的配置文件,指定py2.4
    除了这一点需要注意意外,其它的包安装起来基本不会有什么问题。
    mengzhuo
        45
    mengzhuo  
       2013-07-30 13:14:59 +08:00
    @SR1 等你用上自动化部署的时候就知道Linux的脚本化安装远比Windows的安装程序包来的舒服
    hartnett
        46
    hartnett  
       2013-07-30 14:04:07 +08:00
    tornado + mysql + nginx + supervisor,几句apt-get就搞定了。
    no13bus
        47
    no13bus  
       2014-11-02 09:39:20 +08:00
    @mengzhuo 你说的是利用buildout和fabric吗?将同样的程序批量部署在多台服务器上面?
    mengzhuo
        48
    mengzhuo  
       2014-11-02 11:33:28 +08:00 via iPad
    @no13bus 只用fabric 和少量Shell脚本就搞定了
    tjxiter
        49
    tjxiter  
       2015-09-16 14:10:57 +08:00
    @tangyuan 博客用 sqlite3 够吗?
    gladuo
        50
    gladuo  
       2016-07-24 00:49:02 +08:00
    docker 吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4572 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 03:57 PVG 11:57 LAX 19:57 JFK 22:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86