MySQLi 未找到 dockerized php
MySQLi not found dockerized php
我正在尝试对我的网站进行 docker 化。我有 Nginx 和 PHP up 和 运行 并且它正在工作 find 除了我无法连接到数据库。加载页面时出现错误:
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 的输出:
我怎样才能得到这个 运行?或者我现在应该使用不同的驱动程序吗?
您的 php.ini 中似乎没有启用 MysqlI 扩展。
如果启用,您应该会在 phpinfo.
中看到 mysqli
部分
可在此处找到有关启用扩展的更多信息:Fatal error: Class 'MySQLi' not found
您需要在 Dockerfile 中启用 php 扩展:
FROM php:7
RUN docker-php-ext-install mysqli
不需要触摸php.ini
。
我遇到了与
类似的问题
php:7-apache 镜像,默认情况下不会安装 mysqli
您可以在容器内验证这一点
$ docker exec -it <phpcontainerid> bash
docker 集装箱内 bash 码头
# docker-php-ext-enable mysqli
如果未安装 mysqli,您将从上述命令的输出中得知
# docker-php-ext-install mysqli
然后我提交了这个更改所以相同的图像
$ docker commit -p <phpcontainerid> <new or same image name>
works for me:
在 php 容器内:
docker-php-ext-install mysqli
apachectl restart
- docker 图片:mysql、php:7.2.30-apache
确认您的 MySQL 版本应该与 docker
的 PHP 版本兼容
详情:-
首先,确保在php信息页面中你应该有安装mysqli的信息,如果没有那么......
否则,请安装它,如果您认为您已在 docker 中安装它但无法正常工作
然后确认您的 MySQL 版本应该与 docker 的 PHP 版本兼容
喜欢
首先我将这对用于 docker
- php:7.4-apache & mysql:5.7(但它不工作并显示错误
Class 'mysqli' 未找到)
之后我安装了
- php:7.2-apache & mysql:5.7 和 对我来说很好用
我正在尝试对我的网站进行 docker 化。我有 Nginx 和 PHP up 和 运行 并且它正在工作 find 除了我无法连接到数据库。加载页面时出现错误:
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 的输出:
我怎样才能得到这个 运行?或者我现在应该使用不同的驱动程序吗?
您的 php.ini 中似乎没有启用 MysqlI 扩展。 如果启用,您应该会在 phpinfo.
中看到mysqli
部分
可在此处找到有关启用扩展的更多信息:Fatal error: Class 'MySQLi' not found
您需要在 Dockerfile 中启用 php 扩展:
FROM php:7
RUN docker-php-ext-install mysqli
不需要触摸php.ini
。
我遇到了与
类似的问题
php:7-apache 镜像,默认情况下不会安装 mysqli
您可以在容器内验证这一点
$ docker exec -it <phpcontainerid> bash
docker 集装箱内 bash 码头
# docker-php-ext-enable mysqli
如果未安装 mysqli,您将从上述命令的输出中得知
# docker-php-ext-install mysqli
然后我提交了这个更改所以相同的图像
$ docker commit -p <phpcontainerid> <new or same image name>
works for me:
在 php 容器内:
docker-php-ext-install mysqli
apachectl restart
- docker 图片:mysql、php:7.2.30-apache
确认您的 MySQL 版本应该与 docker
的 PHP 版本兼容详情:-
首先,确保在php信息页面中你应该有安装mysqli的信息,如果没有那么......
否则,请安装它,如果您认为您已在 docker 中安装它但无法正常工作
然后确认您的 MySQL 版本应该与 docker 的 PHP 版本兼容 喜欢
首先我将这对用于 docker
- php:7.4-apache & mysql:5.7(但它不工作并显示错误 Class 'mysqli' 未找到)
之后我安装了
- php:7.2-apache & mysql:5.7 和 对我来说很好用