引言
在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台。那么问题来了,既然要在服务器上部署,
就需要准备:
1.linux服务器配置
2.linux安装python环境搭建与配置
3.项目依赖的库
4.uwsgi安装与配置
5.nginx安装与配置
安装流程
备注:以下所有操作都在root权限下进行,如果没有linux的root权限,找运维或者相关人员开通。
1.更新系统软件包
[root@localhost ~]# yum update -y
2.安装软件管理包和可能使用的依赖
[root@localhost ~]# yum -y groupinstall "Development tools" [root@localhost ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
敲黑板:centos安装python3.7时遇到如下问题,查阅知需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新更新openssl
import _ssl # if we can't import it, let the error propagate ImportError: No module named _ssl
3.安装依赖库
[root@localhost ~]# yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
4.安装最新版本的openssl 注意!openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib 自行到官网查阅最新版本~
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz tar -zxvf openssl-1.1.1.tar.gz cd openssl-1.1.1 ./config --prefix=$HOME/openssl shared zlib make && make install
敲黑板:安装python前一定要先安装ssl,不然后面pip使用不了。
5.设置环境变量LD_LIBRARY_PATH
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile source $HOME/.bash_profile
tar -zxvf Python-3.7.0.tgz ./configure --prefix=$HOME/Py37 --with-openssl=$HOME/openssl make && make install echo $HOME
7.至此python3.7就安装完了,来检验下ssl模块能否被导入吧:
[root@test-bss-181 ~]# echo $HOME /root [root@test-bss-181 ~]# cd /root/Py37/ [root@test-bss-181 Py37]# ls bin include lib share [root@test-bss-181 Py37]# cd bin/ [root@test-bss-181 bin]# ls 2to3 easy_install-3.7 idle3.7 pip3 pydoc3 python3 python3.7-config python3.7m-config pyvenv virtualenv 2to3-3.7 idle3 pip pip3.7 pydoc3.7 python3.7 python3.7m python3-config pyvenv-3.7 [root@test-bss-181 bin]# ./python3 Python 3.7.0 (default, Jan 12 2020, 03:54:25) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> import _ssl >>>
已经验证没有报错。
如果没有按照步骤安装,将出现:
>>> import ssl Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\Anaconda\lib\ssl.py", line 98, in <module> import _ssl # if we can't import it, let the error propagate ModuleNotFoundError: No module named '_ssl' >>>
最后使用pip安装其他包会出现:
这里是个坑,所以在此讲一下,可能有人会遇到。接下来继续讲
8.python安装好后,要创建软链接,你若要不知道python的位置在哪儿可以这样
[root@izbp12am8wqrn7t6wzgmydz bin]# whereis python python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python.bak /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/local/python /usr/share/man/man1/python.1.gz
查看软链接指向
[root@root ~]# cd /usr/bin/ [root@root bin]# ll python* lrwxrwxrwx. 1 root root 7 2月 7 09:30 python -> python2 lrwxrwxrwx. 1 root root 9 2月 7 09:30 python2 -> python2.7 -rwxr-xr-x. 1 root root 7136 8月 4 2017 python2.7
将原来的链接备份 mv /usr/bin/python /usr/bin/python.bak 添加python3的软链接 ln -s /root/Py37/bin/python3.7 /usr/bin/python 测试是否安装成功了 python -V
添加pip软链接
ln -s /root/Py37/bin/pip3.7 /usr/bin/pip [root@test-bss-181 bin]# ll pip* lrwxrwxrwx 1 root root 21 Jan 12 04:03 pip -> /root/Py37/bin/pip3.7
9.安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理
[root@localhost /]# pip3 install virtualenv
10.建立软链接
[root@localhost /]# ln -s /root/Py37/bin/virtualenv /usr/bin/virtualenv
资料查询链接:
1.无法导入sll和_ssl报错问题:https://www.jianshu.com/p/3ec24f563b81
2.删除linux服务器上yum和python2后导致无法安装其他(重装python和yum):
https://www.jianshu.com/p/dad58d810734
https://blog.csdn.net/qq_34646546/article/details/90714946
3.cento6部署django详细步骤
https://blog.csdn.net/weixin_43883625/article/details/100715363
https://www.cnblogs.com/chaoqi/p/11103188.html
4.CentOS6.5 安装openssl(可能有坑)