2017-08-16 201 views
0

我在嘗試Dockerize使用IonCube加密的PHP應用程序。Docker,Alpine,IonCube,PHP7 FPM

與IonCube獨立運行的應用運行良好,當我嘗試Dockerize這與精益圖像(Docker,Alpine,PHP7.0)它唯一的失敗圍繞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 exec -it image_name/bin/sh」和文件顯示。但它似乎無法加載.SO文件。
  5. 開始想,也許它的目錄權限問題,但仍沒有運氣,當我搭配chmod迪爾爲777

有沒有人打過去這個問題?

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公司架wizard.php說明:

  1. 下載裝載機適用於Linux x86-64的下列檔案之一:
    • tar.gz
    • TAR.BZ2
  2. 把Loader文件中/usr/lib中/ PHP7 /模塊
  3. 編輯文件/etc/php7/conf.d/00_ioncube.ini和之前的任何其他zend_extension行確保包含以下內容:zend_extension = /usr/lib/php7/modules/ioncube_loader_lin_7.0.so
  4. 重新啓動服務器軟件。

仍然在執行上述步驟後,檢查各個文件是否存在於Alpine內的相應目錄中,然後銷燬Docker鏡像,編譯並運行它,但沒有Joy。然後,我還嘗試重新啓動docker鏡像,而不是「docker rm image_name」,以防摧毀已安裝的IonCube相關更改,但仍然沒有運氣。

我有些茫然。

任何指針或指導讚賞。

回答

2

問題的根源在於,因爲IonCube要求glibc(GNU C Library)需要。 IonCube在向我發送的推文中提到,這是他們將來希望解決的問題。 (沒有給出時間線)

參考文獻:https://en.wikipedia.org/wiki/GNU_C_Library