首页 > 解决方案 > 未加载 Mysql 扩展

问题描述

我的 Docker Compose 遇到了问题。我为使用 symfony 1.4、PHP 5.5 和 Mysql 5.7.30 的旧项目设置了本地开发

一切都很好,直到我在浏览器中运行该应用程序。什么都没有出现,我检查了日志文件。它说:

[error] 6#6: *5 FastCGI sent in stderr: "PHP message:  [wrapped: mysql extension not loaded [User Info: Array]]" while reading upstream, client: 118.70.126.249, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://172.22.0.3:9000"

我还在php.ini文件中启用了扩展名,但它不起作用。

;extension=php_mysql.dll
;extension=php_mysqli.dll

;extension=pdo_mysql
;extension=php_pdo_mysql.dll

;extension=pdo_mysql.so

这是我用于检查的屏幕截图phpinfo() 在此处输入图像描述

这是我的docker-compose.yml

version: '3'

services:

  nginx:
    image: nginx:1.11.4
    container_name: nginx
    ports:
      - 8091:80
    volumes:
      - ./app:/var/www/html
      - ./nginx/conf.d/:/etc/nginx/conf.d/
      - ./nginx/log/:/var/log/nginx/
    depends_on:
      - php
      - mysql

  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: php
    ports:
      - 9000:9000
    working_dir: /var/www/html
    volumes:
      - ./app:/var/www/html
      - ./php/php.ini:/usr/local/etc/php/php.ini
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7.30
    container_name: mysql
    ports:
      - 3307:3306
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_USER=admin
      - MYSQL_DATABASE=symfony_db
      - MYSQL_PASSWORD=secret

这是Dockerfile

FROM php:5.5-fpm

WORKDIR /var/www/html

RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl

RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Add user for laravel application
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

# Copy existing application directory permissions
COPY --chown=www:www . /var/www

# Change current user to www
USER www

EXPOSE 9000

CMD ["php-fpm"]

任何帮助表示赞赏!感谢你们!

标签: phpdockersymfony1mysql-connector

解决方案


推荐阅读