目录
简介
问题缘起
环境分析
破局
简介
本文旨在为一般性的phpstudy部署的模块扩展问题的解决提供一种可能性。以网站Discuz在phpstudy的部署中遇到函数依赖性检查报错为例(如下图)。因为在搜索引擎没有发现能直接有效解决这个问题的帖子,相关话题的参考也使我踩了很多坑,phpv8的Discuz部署教程也早已过时。于是本文就在该旧教程基础上更新部署操作。
问题缘起
- phpstudy系统环境下的php运行环境更新不及时,比如当下版本最高支持php.8.2.9,但php官网已经有了8.3.19。
- 如果要使用最新版本,这个时候,我们需要把在官网下载好的php解压到phpstudy的路径extensions当中。
- 这样我们就可以在php当中使用到最新版本的php
- 然后开始安装,正常打开网站,最终与函数依赖性检查的结果不支持mysqli_connect()相遇。
- 这就是问题的由来。
环境分析
可以预见,这样的直接迁移(从官网上下载文件解压到路径)对于网站部署来说是有很大可能留下未知隐患的。果然,依赖性检查就报错了。于是按照报错的建议:检查mysqli模块是否正确加载,我们同已经在phpstudy系统变量中下载好的8.0版本做对比。
可以看到php8.0扩展的mysqli上有一个√。我们再切换回8.3
确实是没有。还有另一种更经典的检验方法,在网站首页的文件下创建index.php,写下phpinfo(),然后查阅mysqli。如果查找的结果只有一个mysqli关键字,那就是mysqli模块未开启。
但是我们并不需要检查php_mysqli.dll,因为我们的情况有所不同,不是去掉;号的注释问题,更不需要打开或修改该文件。像txt直接打开会乱码,sublime text打开是二进制。我又不是机器人,根本就看不懂乱码和二进制代码,更别说修改了。
破局
用txt分别打开8.0和8.3的配置文件的php.ini。
分别是这样的:
谁是8.0的php.ini谁是8.3的一目了然。对8.0的php.ini展开关键字mysqli搜索,一共有两个词条:
可以初步断定,问题应该就是出在这了。把8.0的php.ini文件内容复制黏贴到8.3,但是需要修改:展开关键字搜索。对8.3的ini搜索关键字,把8.0.2,全部修改为8.3.19。直到:
然后保存。打开phpstudy切换php8.3版本并查看扩展:
扩展安装成功!并检验:
再切换回8.0版本执行相同操作也是得到一样的结果。因此得到检验。
参考资源:在phpstudy中安装php扩展,如apcu扩展等_phpstudy 扩展-CSDN博客