0

我正在使用 DDEV 开发 OXID Esales 项目。使用起来很舒服,但现在我必须安装 Ioncube Loader。我怎样才能做到这一点?我必须将.so文件放入容器内的php方向并扩展php.ini。但我不知道怎么做?有人能帮我吗?

项目:OXID E-Sales

  • php7.1
  • mysql5.7
  • 苹果系统
  • DDEV
4

1 回答 1

2

每次执行 a 时,您都可以在 Web 容器中手动执行此操作ddev start,但这听起来并不有趣。

相反,我们会将所有必需的更改合并到附加 Dockerfile 中,请参阅 docs

将这些内容放在您项目的 .ddev/web-build/Dockerfile 中,然后它会(一次)使用您需要的 ioncube .so 加载器和您需要的 PHP 配置来构建您的 ddev-webserver 映像。正如您所说,这是针对 PHP 7.1 的,您可以将 PHP_VERSION 更改为其他版本。

ARG BASE_IMAGE
FROM $BASE_IMAGE

# Install the ioncube loader - set the PHP_VERSION to what you need
ENV PHP_VERSION=7.1
RUN mkdir -p /usr/local/lib && curl -sSlL  -o /tmp/ioncube.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz && tar -x --strip-components=1 -C /usr/local/lib -f /tmp/ioncube.tar.gz ioncube/ioncube_loader_lin_${PHP_VERSION}.so

# The ioncube_loader has to be the very first thing in the php.ini, so insert it there.
ENV PHP_INI_PATH=/etc/php/${PHP_VERSION}/fpm/php.ini
RUN (echo 'zend_extension = /usr/local/lib/ioncube_loader_lin_${PHP_VERSION}.so' && cat ${PHP_INI_PATH}) > ${PHP_INI_PATH}.new && mv ${PHP_INI_PATH}.new ${PHP_INI_PATH}
于 2020-08-13T23:04:52.387 回答