【问题标题】:How can I use mysqli_conect with docker-compose in php如何在 php 中将 mysqli_conect 与 docker-compose 一起使用
【发布时间】:2021-05-06 12:19:22
【问题描述】:

我有以下 docker-compose 脚本:

version: '3'
services:
    nginx:
        restart: unless-stopped
        image: staticfloat/nginx-certbot
        ports:
            - 80:80/tcp
            - 443:443/tcp
        environment:
            CERTBOT_EMAIL: owner@company.com
        links:
          - php
        volumes:
          - ./conf.d:/etc/nginx/user.conf.d:ro
          - letsencrypt:/etc/letsencrypt
          - ./workspace:/var/www/html

    php:
        image: php:7.4-fpm
        links:
          - docker-mysql
        volumes:
          - ./workspace:/var/www/html/
          - ./php:/usr/local/etc/php/php.ini

    docker-mysql:
        image: mysql:5.7
        container_name: docker-mysql
        restart: always
        environment:
          - MYSQL_DATABASE=bla
          - MYSQL_ROOT_PASSWORD=bla
          - MYSQL_USER=bla
          - MYSQL_PASSWORD=bla
        ports:
          - "3306:3306"
        volumes:
          - ./dbdata:/var/lib/mysql

我面临的问题如下:

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in ...

我该怎么做才能让 mysqli 正常工作?我已经尝试查看 Dockerhub 上的文档,但没有找到任何我理解的内容。 我也已经尝试在 php 容器内运行docker-php-ext-install mysqli,但没有成功。它说模块已安装,但是我在运行 phpinfo 时看不到它被激活。

【问题讨论】:

    标签: php mysql mysqli docker-compose


    【解决方案1】:

    您可以在 PHP 的 Dockerfile 中添加 mysqli 扩展。 您需要创建 Dockerfile 并在其中使用以下命令:

    RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
    

    在您的 docker-compose.yml 中指定 PHP 的 Dockerfile(而不是“图像”)

    php:
        build:
          dockerfile: Dockerfile
    

    当然不是完整的Dockerfile,google "Dockerfile PHP 7.4 fpm example"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多