Django项目在Linux服务器上部署和躺过的坑

  引言

  在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台。那么问题来了,既然要在服务器上部署,

就需要准备:

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
这一步一定要有!!LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib' and ‘/usr/lib',那么就需要指定环境变量LD_LIBRARY_PATH
6.解压python3.7,并安装,一定要指定刚才安装的1.1.1版本的openssl!!!
敲黑板:这里安装python后面一定要指定--with-openssl=$HOME/openssl ,其中$HOME就是/root目录
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
可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。
添加python软链接
将原来的链接备份
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(可能有坑)

https://www.cnblogs.com/hunttown/p/9626448.html

猜你喜欢

转载自www.cnblogs.com/liudinglong/p/12185180.html