【发布时间】:2017-05-20 07:53:40
【问题描述】:
我只是想获得一个简单的 docker 开发环境设置,但 docker 没有安装 php 的 mysql 扩展。我收到一个致命错误 - 调用未定义的函数 mysql_connect()。我尝试了不同的 php 版本(5.4、5.5、5.6、7.0),结果都一样。任何帮助将不胜感激。
docker-compose.yml
version: '2'
volumes:
database_data:
driver: local
services:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
volumes_from:
- php
php:
build: ./docker/php/
expose:
- 9000
volumes:
- .:/var/www/html
testing:
build: ./docker/php/
volumes_from:
- php
mysql:
image: mysql:latest
expose:
- 3306
volumes:
- database_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
Dockerfile
FROM php:7.0-fpm
# Install pdo_mysql
RUN apt-get update \
&& echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
&& echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
&& apt-get install -y wget \
&& wget https://www.dotdeb.org/dotdeb.gpg \
&& apt-key add dotdeb.gpg \
&& apt-get update \
&& apt-get install -y php7.0-mysql \
&& docker-php-ext-install pdo_mysql mysqli mysql
【问题讨论】:
-
These extensions 已在 PHP 7 中删除,并且在早期版本中已弃用。了解 MySQLi 和 PDO。
-
对不起,我应该提到这是一个支持 7 的 wordpress 站点。看起来代码尝试使用 mysqli,然后在 mysqli 不可用时回退到 mysql。 github.com/WordPress/WordPress/blob/master/wp-includes/…
标签: php mysql wordpress docker mysqli