dnmp icon indicating copy to clipboard operation
dnmp copied to clipboard

php的pdo_mysql未安装

Open leeyiding opened this issue 2 years ago • 1 comments

.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

leeyiding avatar Jul 27 '22 14:07 leeyiding

似乎是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

Yven avatar Sep 09 '22 09:09 Yven

似乎是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-library/php#1172

更新docker到20以上就可以了

wzfjesun avatar Jan 30 '23 06:01 wzfjesun