dnmp
dnmp copied to clipboard
php的pdo_mysql未安装
.env
PHP_VERSION=7.4.27
PHP_PHP_CONF_FILE=./services/php/php.ini
PHP_FPM_CONF_FILE=./services/php/php-fpm.conf
PHP_LOG_DIR=./logs/php
PHP_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache
docker-compose.yml
php:
build:
context: ./services/php
args:
PHP_VERSION: php:${PHP_VERSION}-fpm-alpine
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: "$TZ"
container_name: php
expose:
- 9501
extra_hosts:
- "www.site1.com:172.17.0.1"
volumes:
- ${SOURCE_DIR}:/www/:rw
- ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro
- ${PHP_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
- ${PHP_LOG_DIR}:/var/log/php
- ${DATA_DIR}/composer:/tmp/composer
restart: always
cap_add:
- SYS_PTRACE
networks:
- default
启动项目以后打开http://localhost显示pdo_mysql未安装
欢迎使用DNMP!
版本信息
PHP版本:7.4.27
Nginx版本:nginx
MySQL服务器版本:PDO_MYSQL 扩展未安装 ×
Redis服务器版本:Redis 扩展未安装 ×
MongoDB服务器版本:MongoDB 扩展未安装 ×
已安装扩展
Core=7.4.27
date=7.4.27
libxml=7.4.27
openssl=7.4.27
pcre=7.4.27
sqlite3=7.4.27
zlib=7.4.27
ctype=7.4.27
curl=7.4.27
dom=20031129
fileinfo=7.4.27
filter=7.4.27
ftp=7.4.27
hash=7.4.27
iconv=7.4.27
json=7.4.27
mbstring=7.4.27
SPL=7.4.27
PDO=7.4.27
pdo_sqlite=7.4.27
session=7.4.27
posix=7.4.27
readline=7.4.27
Reflection=7.4.27
standard=7.4.27
SimpleXML=7.4.27
Phar=7.4.27
tokenizer=7.4.27
xml=7.4.27
xmlreader=7.4.27
xmlwriter=7.4.27
mysqlnd=mysqlnd 7.4.27
cgi-fcgi=7.4.27
sodium=7.4.27
似乎是alpine的问题,默认7.4.27-fpm-alpine
使用的是3.14版本的alpine,这个版本用docker-php-ext-install
安装插件会返回Operation not permitted
的错误而无法安装php插件。
我自己用7.4.26-fpm-alpine3.13
构建镜像之后成功了,可是用最新的7.4.30-fpm-alpine3.16
失败了。
看下面讨论也许有可能是docker版本的问题,我用的是18.09.6版本的docker,你可以试试更新docker到20以上的版本。
参考:https://github.com/docker-library/php/issues/1172
似乎是alpine的问题,默认
7.4.27-fpm-alpine
使用的是3.14版本的alpine,这个版本用docker-php-ext-install
安装插件会返回Operation not permitted
的错误而无法安装php插件。 我自己用7.4.26-fpm-alpine3.13
构建镜像之后成功了,可是用最新的7.4.30-fpm-alpine3.16
失败了。看下面讨论也许有可能是docker版本的问题,我用的是18.09.6版本的docker,你可以试试更新docker到20以上的版本。
更新docker到20以上就可以了