License: Attribution-NonCommercial-ShareAlike 4.0 International
本文出自 Suzf Blog。 如未注明,均为 SUZF.NET 原创。
转载请注明:http://suzf.net/post/898
场景再现:
CentOs 6.7 中 Python的 默认版本为 2.6.x, 而日常工作中仍是以 2.7.x 居多。
So问题来了,如果使用 Apache + mod_wsgi 构建 基于Python的 Web 服务器,如何修改其中的Python 默认版本呢?
ENV:
CentOs6.7
httpd-2.2.15-47.el6.centos.4.x86_64
python-2.7.3
mod_wsgi-3.2
从Apache 日志中我们可以看到 相关软件的详细版本信息
[Fri Jun 17 11:33:25 2016] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips mod_wsgi/3.2 Python/2.6.6 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
现在我们要升级 Python 到 2.7.3 的 版本
首先我们需要升级 系统中Python到指定的版本
这里我只是简单地 介绍, 详细信息请参见本站 Python 版本升级shell简略版
PY_VERSION=2.7.3 wget -c https://www.python.org/ftp/python/${PY_VERSION}/Python-${PY_VERSION}.tgz tar zxf Python-${PY_VERSION}.tgz cd Python-${PY_VERSION} ./configure --prefix=/usr/local/Python${PY_VERSION} --enable-shared make && make install接着我们需要重新编译 mod_wsgi
wget http://pkgs.fedoraproject.org/repo/pkgs/mod_wsgi/mod_wsgi-3.2.tar.gz/7e4f7f44 3f562f21f61d1bd06defa1d8/mod_wsgi-3.2.tar.gz touch /etc/ld.so.conf.d/python2.7.conf echo "/usr/local/Python2.7.3/lib/" > /etc/ld.so.conf.d/python2.7.conf ldconfig tar xf mod_wsgi-3.2.tar.gz cd mod_wsgi-3.2 ./configure --with-python=/usr/local/Python2.7.3/bin/python make make installmod_wsgi 详细说明请见 mode_wsgi-x.x/README 如果 Apache 是编译的 同样需要指定 apache eg:--with-apxs=/usr/local/apache/bin/apxs 之后重新启动apache
/etc/init.d/httpd restart在日志中查看 apache 中的 python 版本是否更新
[Fri Jun 17 14:04:21 2016] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips mod_wsgi/3.2 Python/2.7.3 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
参考文档