【问题标题】:PHP7 gives error "PHP Startup: Unable to load dynamic library '/usr/lib64 /php/modules/mysqli.so'PHP7 给出错误“PHP 启动:无法加载动态库 '/usr/lib64 /php/modules/mysqli.so'
【发布时间】:2017-01-30 00:27:57
【问题描述】:

在一台新服务器上,我安装了 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} 在第 19 行的 /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 在第 0 行的 Unknown 中带有链接时间参考 PHP 7.0.11 (cli) (构建: Sep 17 2016 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等中启用了吗?您是否重新启动了该过程?
  • 确实很奇怪。在 /etc/php.ini 中有一个 [MySQLi] 部分;一切看起来都很好。还重新启动了 httpd 和 mysqld。没有效果。
  • 嗯。您是否检查了phpinfo() 它正在使用您认为的 PHP ini 文件?
  • phpinfo() 确认它使用 /etc/php.ini

标签: php mysqli php-7


【解决方案1】:

我会发表评论,但我没有足够的积分。你试过了吗:

yum -y install php70w-mbstring php70w-mcrypt

然后连接使用:

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

我认为这是安装的 PHP 不够的问题!

【讨论】:

  • 为什么有人没有完全安装足够的 PHP :D?
  • :DDD 好吧,在安装php7.0php7.0-mysql 之后,您似乎确实需要安装php7.0-mcryptphp7.0-mbstring 才能使某些事情正常工作......然后有需要php7.0-dev,当然php7.0-gd... >
猜你喜欢
  • 2015-10-13
  • 2014-07-28
  • 2014-03-06
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 2017-04-24
  • 2018-12-14
相关资源
最近更新 更多