升级PHP7.1后MySQL扩展缺失,安装php7.1-mysql遇冲突如何解决?
解决PHP7.1与MySQL/MariaDB兼容性及WordPress扩展缺失问题
嘿,我来帮你理清这个乱局——你看到的“MySQL 10”其实是MariaDB(它是MySQL的开源分支,版本号从10.x起步,这点先搞清楚,避免混淆)。接下来按顺序一步步解决问题:
1. 先修复apt命令卡住的问题
你执行apt-get install php7.1-mysql只显示“Reading packag...”就停住,大概率是软件源缓存过期或者源配置有问题,先处理这个:
- 先中断当前卡住的命令(按
Ctrl+C) - 执行以下命令刷新源缓存:
sudo apt-get update
如果更新时出现“找不到php7.1相关包”的报错,是因为PHP7.1属于旧版本,默认官方源已停止维护,需要添加第三方PHP源:
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update
这个源专门维护旧版本PHP包,能解决找不到php7.1-mysql的问题。
2. 安装并启用PHP7.1的MySQL扩展
源更新完成后,重新安装扩展:
sudo apt-get install php7.1-mysql
安装完成后,验证扩展是否加载:
- 执行命令查看已加载的PHP扩展:
php7.1 -m | grep mysql
如果输出包含mysql和mysqli,说明扩展已加载;如果没有,手动配置PHP启用:
- 找到PHP7.1的配置目录(Apache环境是
/etc/php/7.1/apache2/conf.d/,Nginx+FPM环境是/etc/php/7.1/fpm/conf.d/) - 确认是否存在
20-mysql.ini或20-mysqli.ini文件,若没有则手动创建:extension=mysql.so extension=mysqli.so - 保存后重启Web服务:
Apache环境
sudo systemctl restart apache2Nginx+PHP-FPM环境sudo systemctl restart php7.1-fpm sudo systemctl restart nginx
3. 验证数据库连接与WordPress配置
扩展启用后,先测试PHP能否正常连接MariaDB:
在网站根目录创建test_db.php文件,内容如下:
<?php // 替换成你的数据库账号信息 $conn = mysqli_connect('localhost', '你的数据库用户名', '你的数据库密码', '你的WordPress数据库名'); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } echo "数据库连接成功!"; mysqli_close($conn); ?>
访问这个文件,若显示“数据库连接成功”,说明PHP与数据库的链路没问题。
接着检查WordPress的wp-config.php文件,确认数据库配置项正确:
define('DB_NAME', '你的数据库名'); define('DB_USER', '你的数据库用户名'); define('DB_PASSWORD', '你的数据库密码'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', '');
确保这些信息和你的MariaDB配置完全匹配,尤其是DB_HOST如果不是默认localhost,要改成对应地址。
4. 额外排查:MariaDB服务状态
如果以上步骤完成后仍有问题,检查MariaDB服务是否正常运行:
sudo systemctl status mariadb
如果服务未启动,先启动并设置开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
做完这些后,刷新WordPress页面,应该就能正常访问了。
内容的提问来源于stack exchange,提问作者LarsK
相关产品推荐
相关产品推荐

