在centos上搭建python+ nginx + django + uwsgi
一,搭建nginx
由于phper一枚,nginx是之前已经搭建好了的,采用的是lnmp一键安装包,具体如下(就不细说了):
二,安装python2.7 (参考:https://www.jianshu.com/p/920f8f5bcf82)
由于centos 自带的是2.6 ,所以我们要升级到2.7
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# cd ~
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# tar -zxvf Python-2.7.10.tgz
这里先别安装,先把sqlite给装了,不然后面安装django会报错,又得重装python
2.1安装sqlite
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# yum -y install sqlite-devel
2.2接着安装python
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# cd Python-2.7.10
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# ./configure --enable-shared --enable-loadable-sqlite-extensions --prefix=/usr/local/python27 --with-zlib --with-ssl
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# vim ./Modules/Setup # 找到下边这一行内容,去掉注释
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# make && make install
2.3查看一下pythont版本:
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# python -V
Python 2.6.6
# 版本为2.6
2.7把我们安装的python2.7 替换为系统默认的python
# 备份python2.6
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# mv /usr/bin/python /usr/bin/python2.6.6
# 替换(软连接)
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# ln -s /usr/local/python27/bin/python2.7 /usr/bin/python
2.5再查看一下python版本:
查看之前先做下面这步:
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# vim /etc/ld.so.conf
# 添加如下一行内容
/usr/local/python27/lib
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# ldconfig # 使新添加的路径生效
不然会报错:
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# python -V
./python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
# 原因:linux系统默认没有把/usr/local/python27/lib路径加入动态库搜索路径
2.6查看一下
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# python -V
Python 2.7.10
# 版本为2.7
至此,python2.7就安装好啦
三,解决yum兼容性问题
因为 yum 是不兼容 Python 2.7 的,所以 yum 不能正常工作,我们需要指定 yum 的 Python 为 2.6。
3.1 升级 python 后 yum 出现的问题
[root@iZwz948fbj8fd5kmzmmaiyZ Python-2.7.10]# cd ~
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
........
3.2 编辑 yum 配置文件
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# vim /usr/bin/yum
#!/usr/bin/python
# 第一行修改为 python2.6.6, 为什么是python2.6.6 ?请看2.7小节点
#!/usr/bin/python2.6.6
3.3 验证 yum 问题解决
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name
.......
四,安装pip工具
因为我们的django包都是通过pip安装的
4.1 安装
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# wget https://bootstrap.pypa.io/get-pip.py
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# python get-pip.py
4.2 建立软链接
# 如果存在/usr/bin/pip 先删除
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# rm -rf /usr/bin/pip
#再建立软链接
[root@iZwz948fbj8fd5kmzmmaiyZ ~]# ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip
4.3 验证
[root@iZwz948fbj8fd5kmzmmaiyZ /]# pip
Usage:
pip <command> [options]
Commands:
install Install packages.
download Download packages.
uninstall Uninstall packages.
.......