20220402 按照我的思路安装完会出现旧版本的php中openssl跟实际openssl版本不符的问题,需要重新编译php,在编译的时候手动添加模块--with-openssl=/usr/local/openssl111才行。最近站长才发现其实新版本的宝塔是自带openssl1.1.1的,路径在/usr/local/openssl111(已知宝塔7.9.8以其之后的版本就没有这个文件夹了,centos的可以通过https://download.csdn.net/download/hehu158/87712580下载),默认1.0.2的安装路径在/usr/local/openssl,所以无需升级openssl,只要重新编译php或者python,指定openssl路径即可,也经过站长的测试确实可行,不过通过测试重新编译指定openssl路径是可以实现php7.4\php7.1的内置openssl1.1.1的。默认安装完宝塔是没有openssl111跟openssl文件夹的,需要编译安装一个php8.0及以上的php才会有的。

        首先要先在python项目管理器中安装一次python3.10,然后下载官方的python源码到/root路径解压,执行如下命令指定openssl111,这样完全可以不用升级默认的openssl。

        pushd Python-3.10.2

        ./configure -C --with-openssl=/usr/local/openssl111 --with-openssl-rpath=auto --prefix=/www/server/python_manager/versions/3.10.0 

        make -j8

        make altinstall

        非官方教程,目前测试发现的问题如下,php8以下版本,使用curl请求https会出现502 Bad Gateway nginx,默认php7都是内置openssl1.0.0的,升级openssl1.1.1后,查看phpinfo,出现的openssl版本不一致,所以导致curl请求https会失效,php8内置的是openssl1.1.1的,所以不受影响。如介意请勿操作升级。可以实现看下宝塔官网团队针对openssl升级问题的回答:https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=79935&highlight=openssl,如下思路大家就不用看了哈。

9547C65A-DE36-4381-A321-611862689C7C.png

        通过python项目管理器安装的python,不管你升级没升级openssl,他都是不会带openssl。不装这个东西,sanic跑不起来,通过pip install xxx模块基本都是失败的,因为现在的镜像源地址都是https的,没有这个东西,安装个模块需要这么写,还是要通过命令行来安装,那么这个python项目管理器就是个看看的,啥也用不了了,在windows上写好的代码想在自己服务器上跑一跑都不行,这个真的很打击人的,如果要测试环境,建议大家还是搞个虚拟机先玩一玩,别用正式的服务器。站长是一步一步测试了好几轮,建议将sqlite3、openssl、python3.10.2源码包下载过来上传到root目录,就是~目录下,进入每个目录执行一边chmod 777 *获取下所有权限。

        虚拟python的环境路径/python -m pip install django -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com


没有安装openssl时会报错

Could not fetch URL https://pypi.org/simple/xrld/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url:


通过python管理器中的模块添加基本都是会提示安装失败的,这个东西也感觉不是很友好,有的高一点的python版本错误日志还没有,搞的人一头雾水。


测试支不支持opensll的方法很简单,命令行下执行/www/server/python_manager/versions/3.10.0/bin/python3

然后输入import ssl回车

Traceback (most recent call last):

  File "

  File "/www/server/python_manager/versions/3.10.0/lib/python3.10/ssl.py", line 98, in

    import _ssl             # if we can't import it, let the error propagate

ModuleNotFoundError: No module named '_ssl'

centos7宝塔安装完默认的openssl是OpenSSL 1.0.2k-fips  26 Jan 2017,官网https://www.openssl.org/上最新的是3.x(这个还没仔细研究过,没安装成功),1.1.1m版本的仅支持到2023年


下面给大家介绍下站长具体的解决方案:

  1. 安装宝塔;

  2. 升级sqlite3,如果没有用到的话就算了,这个倒还是挺好的,你升级完再通过python项目管理器安装还是会将最版本的sqlite3带进来的;

  3. 升级openssl到1.1.1m,这个通过python项目管理器是带不动的;

  4. 通过python项目管理器安装最高版本好了;

  5. 最后偷梁换柱,从python官网下载源码对python重新编译重新安装,覆盖到/www/server/python_manager/versions/3.10.0,最后你再使用python项目管理器你就会觉得真香了哈。参考网址https://docs.python.org/zh-cn/3.10/using/unix.html#on-linux

9547C65A-DE36-4381-A321-611862689C7C.png


本文链接:http://www.20m8.com/161.html

热门文章

python-docx给docx的word添加JPG图片报错UnrecognizedImageError

python-docx给docx的word添加JPG图片报错docx.image.exceptions.UnrecognizedImageError,最终有问题的还是自己的代码,python-docx写的真是不错,一定要注意自己生成的代码跟图片有没有问题。

查看全文 hehu158 于 2020-01-29 17:34 发表在 Python ( 阅读:10815 )

宝塔linux免费版7.9.0中python项目管理器的ssl异常鸡肋以及解决方案

要真正把宝塔的python项目管理器使用起来,需要经历一番复杂的操作才可以,否则这个东西就是个鸡肋。

查看全文 hehu158 于 2022-03-08 09:15 发表在 Python ( 阅读:3360 )

pyinstaller打包后运行提示不是有效的win32应用程序

python在批量处理excel跟批量导入信息到数据库都是最优选择,兼容到xp了,没话说,老的项目一样能搞定。打包完提示不是有效的win32应用程序都是小问题了。

查看全文 hehu158 于 2021-03-18 11:33 发表在 Python ( 阅读:3355 )

关于centos7通过宝塔python项目管理器安装django4的解决方案

查看全文 hehu158 于 2022-02-28 11:08 发表在 Python ( 阅读:2290 )

python3开发按宽度缩小压缩图片的批量工具

没有免费合适的批量压缩图片的工具,我们就用python造一个吧。

查看全文 hehu158 于 2020-03-06 16:13 发表在 Python ( 阅读:2163 )

关于ponyorm调试时如何打印执行sql语句的方法

使用pony orm写的数据库底层,如何调试并打印执行的sql语句是否有问题,看这里就够了。

查看全文 hehu158 于 2022-08-30 16:27 发表在 Python ( 阅读:1958 )

python3批量上传用户信息小工具开发

python批量上传工具,终于不用担心数据量太大网页上传会超时的问题了。

查看全文 hehu158 于 2020-09-01 15:43 发表在 Python ( 阅读:1957 )

PYTHON3腾讯云阿里云宝塔文件夹一键上传ftp工具

PYTHON3腾讯云阿里云宝塔文件夹一键打包FTP上传工具,为了偷懒,把VUE打包、FTP批量上传文件的工作交给PYTHON来完成,直接双击然后就可以忙别的活了。

查看全文 hehu158 于 2020-09-02 08:02 发表在 Python ( 阅读:1883 )