Docker,Alpine,IonCube,PHP7 FPM

时间:2017-08-16 18:41:00

标签: docker nginx php-7 alpine ioncube

我正在尝试使用IonCube加密的Docker化。

与IonCube独立运行的应用程序运行良好,当我尝试使用瘦图像(Docker,Alpine,PHP7.0)对其进行Dockerize时,它只能在IonCube安装中失败。

采取的步骤:

  1. 按照显示的IonCube说明进行安装。
  2. 尝试安装后,导航到Docker镜像中的目录以确认COPY已正确执行,所有相关文件都显示在图像中,使用" docker exec -it image_name /bin/sh" .
  3. 虽然文件按照上述命令显示,但在检查图像后,Powershell中的消息显示:"加载失败/usr/lib/php7/modules/ioncube_loader_lin_7.0.so:错误重定位/ usr / lib /php7/modules/ioncube_loader_lin_7.0.so:__strtod_internal:找不到符号"。
  4. 再次访问docker image" docker exec -it image_name / bin / sh"和文件显示。但它似乎无法加载.SO文件。
  5. 最初认为它可能是一个目录权限问题,但是当我将目录修改为777时仍然没有运气。
  6. 过去是否有人遇到此问题?

    Dockerfile内容:

    FROM richarvey/nginx-php-fpm:php7
    COPY web /www
    RUN chmod -R 777 /usr/lib/php7/modules
    COPY web/ioncube/linux-64 /usr/lib/php7/modules
    COPY web/ioncube/linux-64-ini /etc/php7/conf.d
    WORKDIR /www
    

    IonCube loader-wizard.php说明:

    1. 下载适用于Linux x86-64的Loaders的以下存档之一:
      • 的tar.gz
      • TAR.BZ2
    2. 将Loader文件放入 / usr / lib / php7 / modules
    3. 编辑文件 /etc/php7/conf.d/00_ioncube.ini ,在任何其他zend_extension行之前,请确保包含以下内容: zend_extension = /usr/lib/php7/modules/ioncube_loader_lin_7.0.so
    4. 重新启动服务器软件。
    5. 仍然在执行上述操作后,检查Alpine中相应目录中是否存在相应的文件,然后,我销毁docker镜像,构建,然后运行它,但没有Joy。然后我还尝试重新启动docker镜像而不是" docker rm image_name"如果它正在摧毁已安装的IonCube相关的变化,但仍然没有运气。

      我有点失落。

      赞赏任何指示或指导。

1 个答案:

答案 0 :(得分:2)

问题的根源是因为IonCube需要 glibc (GNU C Library)。 IonCube在推文中向我提到,这是他们将来希望解决的问题。 (没有给出时间表)

参考文献:https://en.wikipedia.org/wiki/GNU_C_Library