搭建Apache+python环境

2012-06-23 21:26:27 +08:00
 m_z
大家好,最近学习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”这个,但是没有找到解决方法。我不知道该怎么弄了,希望高手不吝赐教,谢谢
7017 次点击
所在节点    Python
24 条回复
m_z
2012-06-23 21:48:14 +08:00
请问@Livid这里有回复的话,不刷新能看到吗?
我问的问题大家怎么都不回复??哪怕提供一个解决思路也好哇。。
SErHo
2012-06-23 22:12:29 +08:00
@m_z 好吧,其实我刚学的时候,也是先用 Apache,不过就是没折腾成功过,后来就用 uwsgi+Nginx 了。如果你的 Web 应用是支持 WSGI 的,或许可以试试其它的。
m_z
2012-06-23 22:13:44 +08:00
非常感谢,我朝这边努力下
cloudzhou
2012-06-23 22:16:43 +08:00
@m_z yum search python-libs python-libs-dev 是否安装
m_z
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
2012-06-23 22:27:26 +08:00
@m_z Google 一下 `mod_python Command failed with rc=65536`试试。
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
2012-06-23 22:33:16 +08:00
@SErHo 谢谢

@cloudzhou 好的,我要跟上潮流,谢谢了
m_z
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
2012-06-24 19:55:28 +08:00
> ps axu|grep nginx 查看这个worker process的属主
> ls -ld /home/mz/python/project/html 的权限属主
m_z
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
2012-06-24 21:35:09 +08:00
@m_z 你现在的属主是对的阿,还是你chown了,如果要改成一样的,修改
> grep use /where/is/your/nginx.conf
user mz mz;
m_z
2012-06-24 21:36:09 +08:00
@cloudzhou 非常感谢!我修改了nginx.conf文件的user,然后ok拉!好高兴~~接下来看看怎么让py文件输出到浏览器。再次感谢。
cloudzhou
2012-06-24 21:45:37 +08:00
如果你是用django框架的,我这里有配置文件,如果有其他框架,按照配置来。
总之,一步步入门开源框架的步骤是:
1 官方文档,不要害怕英文,一步步按照实现,比如django,非常的完善了。
2 google
cloudzhou
2012-06-24 21:46:49 +08:00
@m_z 选择一个入手简单,文档丰富对入门很有帮助的,不要立刻找小众的技术
m_z
2012-06-24 21:50:25 +08:00
@cloudzhou 之前听过一个讲座,说用flask,所以我想试试这个。不过最近在网上看到的好多django。我不知道区别,不过有点想用flask,感觉名字好念,哈哈。
013231
2012-06-24 21:54:23 +08:00
@m_z flask吧. django太重了, 我是不喜歡.
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
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
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分别服务于静态和动态数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/40357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX