【问题标题】:How to disable some php extensions pre-installed and enabled on Google App Engine container如何禁用在 Google App Engine 容器上预安装和启用的一些 php 扩展
【发布时间】:2019-03-28 11:05:08
【问题描述】:

这些扩展程序已在 Google App Engine php 容器上预安装并启用:

  • APCu
  • Bzip2
  • 卷曲
  • FPM
  • GMP
  • mbstring
  • mcrypt
  • 库钠
  • 内存缓存
  • MySQL(PDO)(使用 mysqlnd)
  • MySQLi(使用 mysqlnd)
  • OPcache
  • OpenSSL
  • pcntl
  • PostgreSQL
  • PostgreSQL (PDO)
  • 阅读热线
  • 重新编码
  • sem
  • 套接字
  • 邮编
  • Zlib

它们使用 php 编译并默认启用(如您在此处看到的 https://github.com/GoogleCloudPlatform/php-docker/blob/master/package-builder/debian/rules.in

我怎样才能禁用其中的一些呢?例如 MySQL,因为我使用的是 postgres。

到目前为止,这是我的 Dockerfile:

FROM gcr.io/google-appengine/php72:latest

ARG ENABLE_XDEBUG
ARG COMPOSER_FLAGS='--no-scripts --no-dev --prefer-dist'
ENV COMPOSER_FLAGS=${COMPOSER_FLAGS}

RUN apt-get update -y
RUN apt-get install unzip -y
RUN apt-get install autoconf -y
RUN apt-get install build-essential -y

# php-decimal
RUN apt-get install libmpdec-dev -y
RUN pecl install decimal

# Swoole
RUN pecl install swoole-4.2.13

COPY . $APP_DIR
RUN chown -R www-data.www-data $APP_DIR
RUN /bin/bash /build-scripts/move-config-files.sh
RUN /build-scripts/composer.sh;

ENTRYPOINT ["/build-scripts/entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]

# Option to install xdebug
RUN echo "Will enable XDEBUG: $ENABLE_XDEBUG"
RUN if [ "$ENABLE_XDEBUG" = "true" ]; then pecl install xdebug; fi
RUN if [ "$ENABLE_XDEBUG" = "true" ]; then echo "zend_extension=/opt/php72/lib/x86_64-linux-gnu/extensions/no-debug-non-zts-20170718/xdebug.so" >> /opt/php72/lib/php.ini; fi

EXPOSE 8080

【问题讨论】:

    标签: php google-app-engine


    【解决方案1】:

    您可以通过将您自己的php.ini(和完整的conf.d 目录)挂载到容器中来完全控制容器和正在加载的扩展。

    您可以启动容器,然后使用...登录到容器中...

    docker exec -it [container_name] bash
    

    ...并导航到/opt/php72/lib 目录。那个,或者直接使用下载php.ini...

    docker cp [container_name]:/opt/php72/lib/php.ini
    

    ...,修改它并使用-v 标志将其卷安装到容器中,或者将其添加到 docker-compose.yml 文件中。

    在您的 Dockerfile 中引起我注意的另一件事是 xdebug.所以被添加到php.ini。最好在 PHP 的 conf.d 目录中添加一个单独的 .ini,这样原始文件就可以保留……嗯,原始的。

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2016-05-23
      • 2016-02-10
      • 2014-03-29
      相关资源
      最近更新 更多