如何在DDEV-Local Web容器中安装ioncube加载器?

时间:2020-08-13 07:24:51

标签: php ioncube ddev oxid

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

项目: OXID电子销售

  • php7.1
  • mysql5.7
  • MacOS
  • DDEV

1 个答案:

答案 0 :(得分:0)

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

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

将这些内容放入项目的.ddev / web-build / Dockerfile中,然后它将(一次)使用ioncube .so loader和所需的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}