宝塔面板下PHP装扩展避坑指南

发布于 2022-02-14  1,696 次阅读


注:本文仅对于使用宝塔面板且在用面板装扩展的同时自行装扩展的人有实际意义。

有些时候,为了方便测试网站,本人会在本地安装一个宝塔面板,方便搭建本地网站直接测试修改效果,但是万万没想到,宝塔官方竟然会有一个小小的地方在延续至今的版本都没注意到。
其实也难怪,毕竟触发的人毕竟少。
那就开始吧。

前情回顾

那天因为有一个比较重要的组件大量应用了mysql函数,但是大家都知道,PHP5以上的版本默认不再装载mysql插件,主流改用了mysqli。但是那个组件本身比较复杂,而本人又不想花时间改成mysqli,索性直接安装了mysql扩展。接下来一切顺利。

打住!先讲讲怎么在PHP5以上版本装mysql扩展(不推荐本操作)。
第一步,去GitHub(不太推荐网上直接去git.php.net,实测有出问题可能性),来到https://github.com/php/pecl-database-mysql,然后下载,或者可以直接使用以下命令(请确保你的计算机里面有配置好的Git)

git clone https://github.com/php/pecl-database-mysql.git

然后转到下载下来并解压缩后或者拉取下来的文件夹里,执行命令:

phpize

然后执行:

./configure --with-php-config=你的PHP安装目录/bin/php-config

最后:

make && make install

最后一步:去你想装载mysql插件的PHP安装目录那里,找到php.ini,在末尾一行加上:
extension=mysql.so

至此大功告成!

踩坑经过

再之后的测试一切顺利,直到……
直到我用宝塔装了一个插件,然后我就发现项目在疯狂报错,说是找不到mysql这个函数。我找了半天,先看看那个组件,又看看mysql扩展安装目录,没问题呀!
看看PHPinfo,mysql扩展正常!
但是报错说不正常!
我就感觉很奇怪,心想先重启一下PHP试试,结果一重启就出问题了,PHP报错提示配置文件(php.ini)有问题!
于是我就去看了看,果然,宝塔装插件后会自动在php.ini写入配置,但是宝塔把配置写到了配mysql扩展的那一行!
就是说,原文变成了这个样子:
extension=mysql.soextension=我装的插件;
我真的是……
于是我修改了php.ini,又恢复正常了。

避坑指南

配置不规范,运行两行泪。
虽然因为时间原因,我没有找机会再次尝试复现并找出问题所在,但是还是要嘱托一句……
各位,以后写配置末尾一定要带上";"呀……