php - 未加载 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
这是我的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"]
任何帮助表示赞赏!感谢你们!
解决方案
推荐阅读
- java - 两个数据源,每个数据源有 2 个配置文件。H2 和甲骨文。但是,只有 H2 数据源被初始化,并且两个类都保存在 H2 中
- oracle - 如何在plsql中使用常量日期和使用CASE WHEN
- python - 在调试模式下捕获 DeprecationWarning
- javascript - 密码模式验证
- qt5 - 如何在底图库中绘制地图
- visual-studio-code - VScode 调试控制台将节点 js 导入显示为未定义
- powershell - 如何在 shell 脚本中添加 PATH
- bash - 命令输出的子字符串
- docker - 如何在本地计算 docker 映像的确定性和可重现校验和,而无需 ping 任何注册表?
- python - 为什么我的逻辑回归输出对于所有输入都相同?