繁体   English   中英

PHP docker和使用MySQL PDO

[英]PHP docker and using MySQL PDO

当使用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的ini

upload_max_filesize = 100M
post_max_size = 108M

现在当我检查phpinfo()

PDO support enabled
PDO drivers sqlite

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

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

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

特别是最后3个。您可能会错过php7.2-mysql,因为它应该包含在mysqli选项中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM