部署spug二次开发环境时常见的故障解决方案

        部署spug二次开发环境时常见的故障解决方案

                               作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.环境准备

1>.安装python 3.6

[root@docker201.yinzhengjie.com ~]# pyenv install -l  # 查看pyenv支持安装的环境。
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# pyenv install 3.6.12 -v  # 由于spug基于3.6进行开发的,因此我建议大家就直接使用python 3.6的最新版本即可,如果用最新python 3.9.1版本可能会存在一些不可预测的问题哟~  
[root@docker201.yinzhengjie.com ~]# 

2>.查看已安装的python版本

[root@docker201.yinzhengjie.com ~]# pyenv versions
* system (set by /root/.python-version)  # 注意哈,我的CentOS 7.9服务器自带的python环境是python 2.7.5
  3.6.12
  3.6.12/envs/spug3612
  3.9.1
  3.9.1/envs/python391
  python391
  spug3612
[root@docker201.yinzhengjie.com ~]# 

3>.关于虚拟环境和python系统版本环境自由切换的命令

[root@docker201.yinzhengjie.com ~]# python -V
Python 2.7.5
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# pyenv local spug3612
(spug3612) [root@docker201.yinzhengjie.com ~]# 
(spug3612) [root@docker201.yinzhengjie.com ~]# python -V
Python 3.6.12
(spug3612) [root@docker201.yinzhengjie.com ~]# 
(spug3612) [root@docker201.yinzhengjie.com ~]# pyenv local system
[root@docker201.yinzhengjie.com ~]# 
[root@docker201.yinzhengjie.com ~]# python -V
Python 2.7.5
[root@docker201.yinzhengjie.com ~]# 


其它常用的命令可参考我之前整理的笔记:
  https://www.cnblogs.com/yinzhengjie/p/10624755.html
  https://www.cnblogs.com/yinzhengjie/p/10624755.html

有关部署spug开源的运维平台可参考官网:
  https://www.spug.dev/docs/install/

温馨提示:
  如果想要快速体验spug的话,我推荐大家使用docker方式安装,如果你的服务器已经部署好docker环境且网络不差的情况下,基本上在2分钟之内就能运行你的spug程序啦~经过体验我觉得该项目还是很不错的,于是有必要参考一下源码来学习下!

 

二.常见的故障处理

1>.由于没有安装ldap引发的"Modules/constants.h:7:18: 致命错误:lber.h:没有那个文件或目录"异常

  报错原因:
    缺少open-ldap的依赖环境,我估摸是spug项目调用了ldap相关的模块导致的,因此我们的Linux系统需要有对应的ldap环境哟~    

  解决方案:
    [root@docker201.yinzhengjie.com ~]# yum -y install openldap-devel

  温馨提示:
    如果在window上安装的spug环境的话,建议直接将"open_code\spug\spug_api\requirements.txt"文件中的"python-ldap==3.2.0"的内容注释,这样就可以暂时先不解决LDAP的问题,但是在Linux上如果你还想支持该功能,推荐大家还是安装相应的环境。
    当然,如果我们跳过ldap的安装,直接按照官方的文档来操作项目肯定是运行不起来的,因为在源码中有导入对应的ladp相关的模块,因此在运行代码前,建议先将"import ldap"相关的代码先暂时注释掉,等我们真的需要使用的时候再来搞!

2>.django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

  报错原因:
    SQLite 的版本过低,因为spug依赖的是SQLite 3.8.3 及更高的版本,而CentOS 7.9中仅找到了3.7.17版本,因此会抛出异常。

  解决方案:
    打开"http://www.sqlite.org/"网址,下载较新的版本安装即可。

  我参考网上的解决方案,下载的版本并不是最新的SQLite版本,但的确能解决问题,一下是编译安装的步骤:
        [root@docker201.yinzhengjie.com ~]# tar zxf sqlite-autoconf-3270200.tar.gz 
        [root@docker201.yinzhengjie.com ~]# cd sqlite-autoconf-3270200
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ./configure --prefix=/usr/local/sqlite
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]#
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# make -j 4 && make install
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ll /usr/bin/sqlite3 
        -rwxr-xr-x. 1 root root 56264 1月 28 2020 /usr/bin/sqlite3
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# mv /usr/bin/sqlite3 /usr/bin/sqlite3-`date +%F`
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# 
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# ll /usr/bin/sqlite3*
        -rwxr-xr-x. 1 root root 56264 1月 28 2020 /usr/bin/sqlite3-2021-01-19
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]#
        [root@docker201.yinzhengjie.com ~/sqlite-autoconf-3270200]# cd /usr/local/sqlite/bin/
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ll
        总用量 5932
        -rwxr-xr-x 1 root root 6070384 1月 19 00:06 sqlite3
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ln -sv ../local/sqlite/bin/sqlite3 /usr/bin/sqlite3
        "/usr/bin/sqlite3" -> "../local/sqlite/bin/sqlite3"
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# ll /usr/bin/sqlite3
        lrwxrwxrwx 1 root root 27 1月 19 00:14 /usr/bin/sqlite3 -> ../local/sqlite/bin/sqlite3
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# vim /etc/profile
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# tail -2 /etc/profile
        # Add by yinzhengjie
        export LD_LIBRARY_PATH="/usr/local/sqlite/lib"
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# 
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# source /etc/profile
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# sqlite3 --version
        3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]#
        [root@docker201.yinzhengjie.com /usr/local/sqlite/bin]# cd
        [root@docker201.yinzhengjie.com ~]# 
        [root@docker201.yinzhengjie.com ~]# sqlite3 --version
        3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
        [root@docker201.yinzhengjie.com ~]#

3>.

 

posted @ 2021-01-18 00:04  尹正杰  阅读(865)  评论(0编辑  收藏  举报