【问题标题】:Docker + mysql + php + Symfony, error during connecting to mysqlDocker + mysql + php + Symfony,连接mysql时出错
【发布时间】:2018-09-05 16:24:39
【问题描述】:

我正在尝试使用 php 应用程序 (Symfony 3) 设置我的 docker。

一切似乎都很好,但是 Symfony 无法连接到 mysql。

我有错误:

Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException:“驱动程序发生异常:找不到驱动程序”

我的docker-compose.yaml 文件是:

version: '3'
    services:
      app:
        image: car-rental
        ports: 
          - "8888:80"
        links:
          - php
          - db 
        volumes:
          - ./.code:/var/www/html
        depends_on:
          - db
      php:
        image: php:7.1-fpm
        volumes:
          - ./.code:/var/www/html  
      db:
        image: mysql:5.7
        volumes:
          - mysql-data:/var/lib/mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: test
          MYSQL_DATABASE: rental

    volumes:
      mysql-data:

【问题讨论】:

  • 如果它有效,请接受它@bielu000

标签: mysql symfony docker


【解决方案1】:

此错误 (could not find driver) 表示您的 PHP 没有加载 pdo_mysql 模块。 您需要启用它,如果尚未安装,请先安装。

【讨论】:

  • 看来你是对的,但我正在使用已经构建的 php7.1-fpm 容器(正如你在我的 docker-compose 中看到的那样),所以我不能自己安装 pdo。我是否应该通过我自己的 Dockefile 创建 php7.1 容器,我可以在其中放置安装 pdo 驱动程序的指令?
【解决方案2】:

正如你在 php 的 docker hub 上提到的,你可以看到 默认情况下它只包含 redis 启用 redis xdebug。

PHP 源代码没有提供一些扩展,而是提供 可通过 PECL 获得。要安装 PECL 扩展,请使用 pecl install 下载并编译它,然后使用 docker-php-ext-enable 启用 它。

https://hub.docker.com/_/php/

您可以使用相同的 docker compose 文件,只需在容器启动时运行命令

  php:

image: php:7.1-fpm
command:docker-php-ext-install mysqli
volumes:
  - ./.code:/var/www/html  

安装后可以查看

php -m

这些是您拉取的最新 Docker 映像中的默认模块。

    Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 2019-10-08
    • 2013-12-03
    • 2021-06-28
    • 1970-01-01
    • 2022-08-18
    • 2018-06-08
    • 2011-10-10
    • 2021-12-14
    相关资源
    最近更新 更多