在(php-fpm)docker容器中找不到mysqli

时间:2017-05-05 16:12:39

标签: php docker docker-compose fpm

我在我的nginx Web服务器使用的docker容器中运行php:7-fpm。除了当我试图在我的PHP代码中实例化mysqli连接时,一切都运行良好。我收到以下错误:

"NOTICE: PHP message: PHP Fatal error:  Uncaught Error: Class 'Listener\mysqli' not found in index.php:104

这是我用于构建图像的Dockerfile,我明确地安装了mysqli扩展:

FROM php:7-fpm

RUN docker-php-ext-install mysqli

似乎是在下面的phpinfo()输出的情况下安装的。我需要以某种方式配置或启用它吗?

enter image description here

1 个答案:

答案 0 :(得分:3)

你的问题不在于你错过了mysqli扩展名。

如果您正在做这样的事情:

namespace Listener;

class Foo
{
    public function bar() {
        $conn = new mysqli(...);
    }
}

然后,PHP会将new mysqli()解释为new \Listener\mysqli(),因为您当前位于\Listener命名空间中。要解决此问题,您只需将mysqli()显式锚定到根命名空间:

$conn = new \mysqli(...);