zoukankan      html  css  js  c++  java
  • 部署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_codespugspug_api equirements.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>.

    当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。 欢迎加入基础架构自动化运维:598432640,大数据SRE进阶之路:959042252,DevOps进阶之路:526991186
  • 相关阅读:
    C#编程思路
    将字符串类型字段转为map类型字段,使用str_to_map()函数
    写hive脚本时,如果hive的过滤条件比较多。可以把过滤条件放到一个参数里。然后把参数放到过滤条件处。这样以后只需要改参数就可以了
    linux中. 路径/文件
    inner join ,left join 会导致数据发散
    如何批量按分区插入数据
    hive表添加字段后,查不出数据是咋回事?
    linux中$0的含义
    linux中的$#含义
    linux的语法
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/14290869.html
Copyright © 2011-2022 走看看