部署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 ~]#

目录
相关文章
|
JavaScript 前端开发 开发工具
|
Kubernetes 监控 测试技术
k8s中蓝绿部署、金丝雀发布、滚动更新汇总
k8s中蓝绿部署、金丝雀发布、滚动更新汇总
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
存储 Prometheus 监控
SLS时序监控实战: Spring Boot应用监控最佳实践
当今随着云原生和微服务的盛行, 我们的应用的运行环境也变得越来越复杂, 也使得我们越来越难以掌握它的运行状态, 也因此诞生了一批开源软件来帮助我们提升应用的可观察性, 例如prometheus, grafana, open tracing, open telementry等, 这些多半是比较通用的技术, 在实际的场景下, 我们需要怎么从各个层面来做监控和数据的分析呢, 我们就以大家使用最多的技术栈: Java + Spring Boot为例, 来详细阐述应用监控的最佳实践
8302 0
SLS时序监控实战: Spring Boot应用监控最佳实践
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
944 1
|
存储 运维 监控
监控与日志管理:保障系统稳定运行与高效运维的基石
【8月更文挑战第16天】监控与日志管理是保障系统稳定运行和高效运维的基石。它们不仅能够帮助企业及时发现并解决问题,还能够为性能调优、资源优化和业务决策提供有力支持。因此,在构建系统架构时,企业应高度重视监控与日志管理的规划和实施,确保它们能够充分发挥作用,为企业的发展保驾护航。同时,随着技术的不断进步和应用场景的不断拓展,监控与日志管理也将持续演进和创新,为企业带来更多的价值和便利。
|
机器学习/深度学习 算法 Java
Java调用Python方法
【8月更文挑战第7天】
787 4
|
缓存 安全 前端开发
Cloudflare
【7月更文挑战第13天】Cloudflare
826 5
|
运维 Java 关系型数据库
spug上线服务踩坑记
spug是一款优秀的自动化运维平台, 这让我们想自动化又向前迈了一步.
1088 0
|
存储 关系型数据库 MySQL
mysql优化指南之优化篇
mysql优化的一些方法
2082 1