PHP docker和使用MySQL PDO

问题描述 投票:0回答:1

使用PHP-FPM创建LEMP堆栈时,我似乎无法加载PDO驱动程序,它会默认为sqlite驱动程序。

Docker撰写:

version: "3.5"
services:

redis:
  image: redis:alpine
  container_name: errors-redis

mysql:
  image: mysql:8.0
  container_name: errors-mysql
  working_dir: /application
  volumes:
    - .:/application
  environment:
    - MYSQL_ROOT_PASSWORD=test
    - MYSQL_DATABASE=errors
    - MYSQL_USER=test
    - MYSQL_PASSWORD=test
  ports:
    - "9011:3306"

webserver:
  image: nginx:latest
  container_name: errors-nginx
  working_dir: /application
  volumes:
      - .:/application
      - ./dev/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
  ports:
   - "9010:80"

php-fpm:
  image: php:fpm
  container_name: errors-php-fpm
  working_dir: /application
  volumes:
    - .:/application
    - ./dev/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

Docker文件:

FROM phpdockerio/php72-fpm:latest
WORKDIR "/application"

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install  php-memcached php7.2-mysql php-redis php-xdebug \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

这个PHP

upload_max_filesize = 100M
post_max_size = 108M

现在当我检查phpinfo()

PDO support enabled
PDO drivers sqlite

我在任何时候都没有安装sqlite,所以我不确定它是如何得到它的。如何将其更改为使用MySQL而不是sqlite?

php docker
1个回答
2
投票

您还需要将PDO位添加到安装中......

apt-get -y --no-install-recommends install php-memcached php-redis php-xdebug mysqli pdo pdo_mysql \

特别是最后的3.你可能错过了php7.2-mysql,因为这应该用mysqli选项覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.