PHP7报错:"PHP启动:无法加载动态库'/usr/lib64/php/modules/mysqli.so'"

3
在新服务器上安装了PHP 7.0.10和mysql。当我尝试使用mysqli_connect()通过php文件连接数据库时,它会显示以下错误信息:
致命错误:未捕获的错误:在/opt/http/blabla/src/class_db.php的第19行调用未定义函数mysqli_connect()。堆栈跟踪:#0 /opt/http/blabla/src/main.php(17):_Db->connect() #1 {main}抛出/opt/http/blabla/src/class_db.php。 这是由于PHP无法加载mysql共享对象引起的:
[root@nl2 httpd]#php-v PHP警告:PHP启动:无法加载动态库'/usr/lib64/php/modules/mysqli.so'-/usr/lib64/php/modules/mysqli.so:符号mysql_change_user,版本libmysqlclient_18在文件libmysqlclient.so.18中没有定义与链接时间参考无关的Unknown on line 0 PHP 7.0.11(cli)(构建日期:2016年9月17日09:23:18)(NTS)
两个库都存在:
[root@nl2 httpd]# ls -l /usr/lib64/php/modules/mysqli.so /usr/lib64/php/modules/mysqli.so
-rwxr-xr-x 1 root root 141856 Sep 17 11:39 /usr/lib64/php/modules/mysqli.so
-rwxr-xr-x 1 root root 141856 Sep 17 11:39 /usr/lib64/php/modules/mysqli.so

一些配置信息:

# yum list installed
php70w.x86_64                         7.0.10-1.w7
php70w-cli.x86_64                     7.0.10-1.w7
php70w-common.x86_64                  7.0.10-1.w7
php70w-devel.x86_64                   7.0.10-1.w7
php70w-gd.x86_64                      7.0.10-1.w7
php70w-mysql.x86_64                   7.0.10-1.w7
php70w-opcache.x86_64                 7.0.10-1.w7
php70w-pdo.x86_64                     7.0.10-1.w7
php70w-process.x86_64                 7.0.10-1.w7
mysql55w.x86_64                       5.5.50-1.w
mysql55w-devel.x86_64                 5.5.50-1.w
mysql55w-libs.x86_64                  5.5.50-1.w
mysql55w-server.x86_64                5.5.50-1.w

# cat /etc/php.d/mysqli.ini
;Enable mysqli extension module
extension=mysqli.so
extension=php_mysqli.so

有什么建议吗? 谢谢。

很奇怪。它应该在mysql包中。你确定在 php.ini 等文件中启用了它吗?你重启了进程吗? - Andrea
确实很奇怪。在/etc/php.ini中有一个[MySQLi]部分;看起来一切都很好。 还重新启动了httpd和mysqld。没有效果。 - Erik
嗯。你有检查过 phpinfo() 中使用的 PHP ini 文件是否是你认为的那个吗? - Andrea
phpinfo() 确认它使用的是 /etc/php.ini。 - Erik
1个回答

2

我想发表评论,但是我没有足够的积分。你尝试过以下方法吗:

yum -y install php70w-mbstring php70w-mcrypt

然后使用以下方式进行连接:

$mysqli = new mysqli('ip', 'user', 'pass', 'db', port);

我认为这是由于PHP安装不足引起的问题!


4
有人为什么会没有足够的 PHP 安装呢 :D? - JayIsTooCommon
1
嗯,在安装了 php7.0php7.0-mysql 之后,似乎还需要安装 php7.0-mcryptphp7.0-mbstring 才能使某些东西正常工作……然后有些情况下需要安装 php7.0-dev,当然也要安装 php7.0-gd……我的意思是,每个模块(https://launchpad.net/ubuntu/+source/php7.0)都需要评估一下,看你当前或未来是否需要! - Eugene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接