搭建Apache+python环境 - 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
m_z
V2EX    Python

搭建Apache+python环境

  •  
  •   m_z 2012-06-23 21:26:27 +08:00 7437 次点击
    这是一个创建于 4859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,最近学习python,看了些基础知识,现在想搭建个web开发环境,httpd-2.4.2已经编译成功,python是通过yum安装的,版本是2.7.3。

    看网上的测试示例,需要加载mod_python.so,我在安装mod_python的时候,configure已经通过了,make不能通过,信息如下:
    make[1]: 进入目录“/home/mz/SoftWare/mod_python-3.3.1/src”

    Compiling for DSO.

    /home/mz/SoftWare/http_server/bin/apxs -I/home/mz/SoftWare/mod_python-3.3.1/src/include -I/home/mz/SoftWare/http_server/include -I/usr/include/python2.7 -c mod_python.c _apachemodule.c requestobject.c tableobject.c util.c serverobject.c connobject.c filterobject.c hlist.c hlistobject.c finfoobject.c -L/usr/lib64/python2.7/config -Xlinker -export-dynamic -lm -lpython2.7 -lpthread -ldl -lutil -lm
    /home/mz/SoftWare/http_server/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/home/mz/SoftWare/http_server/include -I/home/mz/SoftWare/http_server/include -I/home/mz/SoftWare/http_server/include -I/home/mz/SoftWare/mod_python-3.3.1/src/include -I/home/mz/SoftWare/http_server/include -I/usr/include/python2.7 -c -o mod_python.lo mod_python.c && touch mod_python.slo
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
    from /usr/include/python2.7/Python.h:8,
    from /home/mz/SoftWare/mod_python-3.3.1/src/include/mod_python.h:80,
    from mod_python.c:28:
    /usr/include/python2.7/pyconfig-64.h:1170:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
    /usr/include/features.h:164:0: note: this is the location of the previous definition
    /usr/include/python2.7/pyconfig-64.h:1192:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
    /usr/include/features.h:166:0: note: this is the location of the previous definition
    mod_python.c: In function 'init_mutexes':
    mod_python.c:564:30: error: 'unixd_config' undeclared (first use in this function)
    mod_python.c:564:30: note: each undeclared identifier is reported only once for each function it appears in
    mod_python.c:565:17: warning: implicit declaration of function 'unixd_set_global_mutex_perms' [-Wimplicit-function-declaration]
    mod_python.c: In function 'python_init':
    mod_python.c:826:5: warning: initialization from incompatible pointer type [enabled by default]
    apxs:Error: Command failed with rc=65536
    .
    make[1]: *** [mod_python.so] 错误 1
    make[1]: 离开目录“/home/mz/SoftWare/mod_python-3.3.1/src”
    make: *** [do_dso] 错误 2

    我google了“apxs:Error: Command failed with rc=65536”这个,但是没有找到解决方法。我不知道该怎么弄了,希望高手不吝赐教,谢谢
    24 条回复    1970-01-01 08:00:00 +08:00
    m_z
        1
    m_z  
    OP
       2012-06-23 21:48:14 +08:00   1
    请问@Livid这里有回复的话,不刷新能看到吗?
    我问的问题大家怎么都不回复??哪怕提供一个解决思路也好哇。。
    SErHo
        2
    SErHo  
       2012-06-23 22:12:29 +08:00
    @m_z 好吧,其实我刚学的时候,也是先用 Apache,不过就是没折腾成功过,后来就用 uwsgi+Nginx 了。如果你的 Web 应用是支持 WSGI 的,或许可以试试其它的。
    m_z
        3
    m_z  
    OP
       2012-06-23 22:13:44 +08:00
    非常感谢,我朝这边努力下
    cloudzhou
        4
    cloudzhou  
       2012-06-23 22:16:43 +08:00
    @m_z yum search python-libs python-libs-dev 是否安装
    m_z
        5
    m_z  
    OP
       2012-06-23 22:23:05 +08:00
    @cloudzhou
    [root@mz mod_python-3.3.1]# rpm -qa | grep python-libs
    python-libs-2.7.3-3.fc16.x86_64

    [root@mz mod_python-3.3.1]# yum search python-libs
    已加载插件:langpacks, presto, refresh-packagekit
    ============================ N/S 匹配:python-libs =============================
    python-libs.i686 : Runtime libraries for Python
    python-libs.x86_64 : Runtime libraries for Python

    名称和简介匹配 only,使用“search all”试试。
    SErHo
        6
    SErHo  
       2012-06-23 22:27:26 +08:00
    @m_z Google 一下 `mod_python Command failed with rc=65536`试试。
    cloudzhou
        7
    cloudzhou  
       2012-06-23 22:29:25 +08:00
    @m_z 因为我对yum包不熟悉,如果是ubuntu:
    > apt-cache search python-dev
    python-dev - header files and a static library for Python (default)

    如果你现在已经是linux环境了,没有历史包袱,使用nginx+uwsgi吧,apache是上个世纪的产物了。
    m_z
        8
    m_z  
    OP
       2012-06-23 22:33:16 +08:00
    @SErHo 谢谢

    @cloudzhou 好的,我要跟上潮流,谢谢了
    m_z
        9
    m_z  
    OP
       2012-06-24 18:46:09 +08:00
    @cloudzhou 我在使用nginx,配置了一个自己的server,但是报 “403 Forbidden”,应该不是访问权限的问题阿。
    location / {
    root /home/mz/python/project/html;
    index index.html;
    }
    这是把示例的html页面cp过来的,还是不行。默认的那个就可以。
    help me..
    cloudzhou
        10
    cloudzhou  
       2012-06-24 19:55:28 +08:00   1
    > ps axu|grep nginx 查看这个worker process的属主
    > ls -ld /home/mz/python/project/html 的权限属主
    m_z
        11
    m_z  
    OP
       2012-06-24 21:31:57 +08:00
    @cloudzhou
    ps -aux | grep nginx
    nginx 3186 0.0 0.0 98856 2504 ? S 21:27 0:00 nginx: worker process

    ls -dl /home/mz/python/project/html/
    drwxrwxrwx. 2 nginx mz 4096 6月 24 18:25 /home/mz/python/project/html/

    好像安装什么的过程中,有过add user的操作。怎么能把nginx的worker process改为mz?
    cloudzhou
        12
    cloudzhou  
       2012-06-24 21:35:09 +08:00
    @m_z 你现在的属主是对的阿,还是你chown了,如果要改成一样的,修改
    > grep use /where/is/your/nginx.conf
    user mz mz;
    m_z
        13
    m_z  
    OP
       2012-06-24 21:36:09 +08:00
    @cloudzhou 非常感谢!我修改了nginx.conf文件的user,然后ok拉!好高兴~~接下来看看怎么让py文件输出到浏览器。再次感谢。
    cloudzhou
        14
    cloudzhou  
       2012-06-24 21:45:37 +08:00
    如果你是用django框架的,我这里有配置文件,如果有其他框架,按照配置来。
    总之,一步步入门开源框架的步骤是:
    1 官方文档,不要害怕英文,一步步按照实现,比如django,非常的完善了。
    2 google
    cloudzhou
        15
    cloudzhou  
       2012-06-24 21:46:49 +08:00
    @m_z 选择一个入手简单,文档丰富对入门很有帮助的,不要立刻找小众的技术
    m_z
        16
    m_z  
    OP
       2012-06-24 21:50:25 +08:00
    @cloudzhou 之前听过一个讲座,说用flask,所以我想试试这个。不过最近在网上看到的好多django。我不知道区别,不过有点想用flask,感觉名字好念,哈哈。
    013231
        17
    013231  
       2012-06-24 21:54:23 +08:00
    @m_z flask吧. django太重了, 我是不喜.
    cloudzhou
        18
    cloudzhou  
       2012-06-24 21:55:52 +08:00
    @m_z 那你不论如何要看这里 http://flask.pocoo.org/docs
    关于发布选择,http://flask.pocoo.org/docs/deploying/
    如果只是开发方便,可以选择 http://flask.pocoo.org/docs/quickstart/#quickstart-deployment,注册一个 Heroku 帐号就可以使用 flask 了
    一步步按照这个
    m_z
        19
    m_z  
    OP
       2012-06-24 22:00:23 +08:00
    @cloudzhou
    $ python hello.py
    * Running on http://127.0.0.1:5000/
    这个,和我/etc/init.d/nginx start启动的服务,有啥关系吗?

    那个注册,是什么用?我现在好像已经可以用flask了
    cloudzhou
        20
    cloudzhou  
       2012-06-24 22:04:09 +08:00
    Heroku是一个类似gae的云端开发,可以发布应用,当然我觉得还是没有本地爽。
    你刚才说得 http://127.0.0.1:5000/ 应该和 nginx 没有什么关系。
    nginx 是这样的,你定义url作为静态服务,比如/static/,访问的是静态文件
    其他目录可以通过 nginx 的 proxy 代理,或者 uwsgi,cgi 协议访问到你刚才的 http://127.0.0.1:5000/,通过这样nginx,python分别服务于静态和动态数据
    m_z
        21
    m_z  
    OP
       2012-06-24 22:09:07 +08:00
    你说的这些对我以后应该很有用的,谢谢。我现在还是打算先在本地做个东西出来。

    我本来是搞java的,最近接触了python,感觉动态性很好,并且对常用的API(比如jdbc,我简单看了些例子)支持的很好,所以想自己搞搞这个,希望能做这个的项目。

    谢啦~
    013231
        22
    013231  
       2012-06-24 22:15:55 +08:00
    lqs
        23
    lqs  
       2012-06-24 22:31:03 +08:00
    @SErHo 应该要搜 "'unixd_config' undeclared"
    m_z
        24
    m_z  
    OP
       2012-06-24 22:36:42 +08:00
    @lqs 已经不用那个了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3241 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:55 PVG 19:55 LAX 04:55 JFK 07:55
    Do have faith in what you're doing.
    ubao 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