OS: CentOS 5.4 64位
apache2.2.6 + python2.5.4 + djanog.1.1.1 + mod_python3.3.1
搭建web应用。
先安装apache
./configure /--prefix=/usr/local/apache-2.2.6 /
--with-ssl=/usr/local/openssl-0.9.8k /
--with-mpm=prefork /
--enable-so /
--enable-mods-shared=all /
--enable-modules=all /
--with-expat=builtin /
&& make
再安装 python2.5, CentOS自带python2.4,不是我所要的。
./configure /--prefix=/usr/local/python-2.5.4 /
--enable-shared /
&& make
加了这个参数--enable-shared会出现运行找不到 libpython2.5.so.1.0 这个库,在编辑 目录下把这个文件复制到 /usr/lib下就可以,然后可加入链接到 /usr/lib64目录。
然后安装mod_python
./configure /--prefix=/usr/local/mod_python-3.3.1 /
--with-apxs=/usr/local/apache-2.2.6/bin/apxs /
--with-python=/usr/local/python-2.5.4/bin/python2.5 /
&& make
会报个错误:apxs:Error: Command failed with rc=65536
也是这个文件 作怪: libpython2.5.so.1.0
方法是:vim /etc/ld.so.conf.d/python2.5.conf
输入 /usr/local/lib 保存
当然要创建 一个连接到/usr/local/lib/libpython2.5.so.1.0目录下
然后执行 #ldconfig
最后再编译安装即可。
apache的配置文件httpd.conf如下写
<Location "/material/">SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE MaterialServer.settings
PythonDebug On
PythonPath "['/data/www/material'] + sys.path"
PythonAutoReload On
PythonInterpreter site32
</Location>
Alias "/media" "/data/www/material/MaterialServer/media/"
<Location "/media/">
SetHandler None
</location>
<LocationMatch "/.(jpg|gif|png|txt|ico|pdf|css|jpeg|js)$">
SetHandler None
</LocationMatch>
url.py文件如下写
urlpatterns = patterns('',(r'^app1/</p>, 'myweb.views.index2'),
(r'^app1/index/</p>, 'myweb.views.index'),
)
总结: lniux下编译安装 软件,很多时候 都是找不到某些库,而这些库要不就是没安装,yum下安装试试;要不就不 不要系统目录下,一般是/usr/lib,/usr/lib64, /usr/local/lib, 这几个目录。据说64位系统经常会去/usr/lib64找库,但库在/usr/lib下,这时创建一个连接到lib64下就可以了。
故要多看错误提示,确保依赖库都 安装 好,就一定能安装成功。