PHP致命错误:类';mysqli';从源代码构建PHP 5.6后未找到


PHP Fatal error: Class 'mysqli' not found after building PHP 5.6 from source

我已经从源代码编译了php 5.6并在运行时得到以下错误,因为没有找到mysqli

PHP致命错误:在中找不到类"mysqli"

我使用以下配置编译

./configure''--使用mysqli=/usr/bin/mysql_config''--带有libdir=lib64''--prefix=/usr/local''--带有layout=PHP''--用梨''--启用日历''--启用bcmath''--使用gmp''--启用exif''--使用mcrypt''--使用mhash''--使用zlib''--带-bz2''--启用zip''--启用ftp''--启用mbstring''--带iconv''--启用intl''--带有icu dir=/usr''--带有gettext''--使用pspell''--启用套接字''--使用openssl''--带卷曲''--与gd''--启用gd本机ttf''--使用jpeg dir=/usr''--带有png-dir=/usr''--带有zlib dir=/usr''--xpm dir=/usr''--vpx dir=/usr''--带有freetype dir=/usr''--带-t1lib=/usr''--带有libxml dir=/usr''--使用mysql=mysqlnd''--使用mysqli=mysqlnd''--使用pdo-mysql=mysqlnd''--启用soap''--使用xmlrpc''--使用xsl''--带读出线''--启用pcntl''--启用sysvshm''--启用sysvmsg''--启用shmop''

我在lib目录中找不到mysqli.so:

[root@ns507257php]#cd/usr/lib64/php/modules/[root@ns507257模块]#ll总计3300-rwxr-xr-x 1根74648 9月30日05:47 curl.so-rwxr-xr-x 1根目录2713352 9月30日05:47 fileinfo.so-rwxr-xr-x 1根44680 9月30日05:47 json.so-rwxr-xr-x 1根116296 9月30日05:47 pdo.so-rwxr-xr-x 1根29168 9月30日05:47 pdo_sqlite.so-rwxr-xr-x 1根271960 9月30日05:47 phar.so-rwxr-xr-x 1根目录51336 9月30日05:47 sqlite3.so-rwxr-xr-x 1根58384 9月30日05:47 zip.so

php代码

DBUtil类{公共静态函数get($query,$dbinfo){//print_r($dbinfo);$host=$dbinfo['host'];$username=$dbinfo['username];$password=$dbinfo['password'];$db=$dbinfo['db'];$mysqli=新的mysqli($host,$username,$password,$db);/*检查连接*/if($mysqli->connect_errno){printf("连接失败:%s''n",$mysqli->Connect_error);exit();}/*选择查询返回结果集*/if($result=$mysqli->query("$query"){/*自由结果集*/$result->close();return$result;}}}

此外,看起来我的/usr/local/lib64/是空的。

怎么了?

事实证明,以前的PHP安装没有被干净地删除,这干扰了我的构建。

为了纠正这一点,我需要做:

yum remove php-common
./configure
make install

现在,它起作用了!

--with-libdir=lib64 '
--prefix=/usr/local '

意味着库应该安装在/usr/local/lib64.php/modules中,而不是/usr/lib64/php/modules

在将PHP升级到5.6.5后,我在dev-windows机器上收到了这个错误。Phpinfo()会说mysqli已经加载。

然而,为了解决这个问题,我不得不将php.ini中的"extension_dir"设置为扩展文件夹的完整路径。将此设置保留为"ext"也不起作用。