php 未找到MySQLi

db2dz4w8  于 2022-12-25  发布在  PHP
关注(0)|答案(6)|浏览(198)

我试图停靠我的网站。我已经得到了Nginx和PHP的启动和运行,它的工作找到除了我不能连接到一个数据库。当页面加载时,我得到错误:

Fatal error: Uncaught Error: Class 'MySQLi' not found in /private/conn.php:8 Stack trace: #0 /public_html/index.php(2): require() #1 {main} thrown in /private/conn.php on line 8

我在8号线的连线是:

$db = new mysqli("$host", "$user", "$pass", "$db", "$port");

这个在我的旧系统上运行的很好,但是自从换了一个新的系统,安装了php7.1.5之后,我就不能让它运行了。现在,我还没有用过mysqlnd,所以这可能是我的一个误解,但是mysqlnd包含了mysqli驱动程序。
phpinfo的输出:第一节第一节第一节第一节第一次
我怎样才能让它运行?或者我现在应该使用不同的驱动程序?

gzszwxb4

gzszwxb41#

您需要在您的Dockerfile中启用php扩展名:

FROM php:7
RUN docker-php-ext-install mysqli

不需要触摸php.ini

s8vozzvw

s8vozzvw2#

我也有类似问题

php:7-apacheimage,默认情况下不会安装mysqli

您可以在容器内验证这一点

$ docker exec -it <phpcontainerid> bash

在码头集装箱码头

# docker-php-ext-enable mysqli

如果没有安装mysqli,您将从上述命令的输出中了解到这一点

# docker-php-ext-install mysqli

然后我提交了此更改,因此相同的图像

$ docker commit -p <phpcontainerid> <new or same image name>
tjvv9vkg

tjvv9vkg3#

对我有用:
PHP容器内部:

docker-php-ext-install mysqli

apachectl restart
  • Docker图像:PHP代码:3.0.00-Apache

https://github.com/docker-library/php/issues/391

lrl1mhuk

lrl1mhuk4#

看起来您没有在php.ini中启用MysclI扩展。如果启用了MysclI扩展,您应该会在phpinfo中看到mysqli部分。
有关启用扩展的详细信息,请访问:Fatal error: Class 'MySQLi' not found

2sbarzqh

2sbarzqh5#

确认您的MySQL版本应与Docker的PHP版本兼容

  • 详细信息 *:-

首先,确保在phpinfo页面你应该有mysqli安装信息,如果没有那么... x1c 0d1x
否则,安装它,如果你认为你安装了它在docker,但不工作
然后确认您的MySQL版本应该与Docker的PHP版本兼容
起初我用这双做 Docker

  • php:7.4-apache & mysql:5.7(但是它没有工作,并显示错误Class 'mysqli' not found)

之后我安装了

*php:7.2-apache和mysql:5.7它对我来说工作得很好

hk8txs48

hk8txs486#

我也有同样的问题,通过添加下面的行到dockercompose修复它
第一个月
重建 Docker
docker-compose up --build

相关问题