2017-08-16 2 views
0

IonCube暗号化を使用するPHPアプリケーションをDockerizeしようとしています。Docker、Alpine、IonCube、PHP7 FPM

IonCubeをスタンドアローンで動かすと、IonCubeのインストールがうまくいかず、痩せた画像(Docker、Alpine、PHP7.0)でドッキングできます。撮影した

ステップ:

  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. は、最初は多分そのディレクトリのアクセス許可の問題を考えたが、私は777

にDIRをchmodの際にまだ運は誰もが、過去にこの問題をヒットしていませんか?

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. は/ usr/libに/ PHP7 /モジュールでローダファイルを置き
  3. 編集したファイル/etc/php7/conf.d/00_ioncube.iniと任意の前に他の代替としてzend_extensionラインは以下が含まれていることを確認してください。代替としてzend_extension = 再起動
  4. /usr/lib/php7/modules/ioncube_loader_lin_7.0.soサーバソフトウェア。

はまだ上記を実行した後、それぞれのファイルは、アルパイン内の各ディレクトリに存在することを確認、私はその後、ドッキングウィンドウのイメージを破壊しない構築し、それを実行しますが、ない喜び。私はまた、インストールされたIonCube関連の変更を破棄していた場合に備えて、ドッカーのイメージを「ドッカーrmイメージ名」の代わりに再起動しました。

私は少し迷っています。

ポインタやガイダンスは高く評価されています。

答えて

2

IonCubeにはglibc(GNU Cライブラリ)が必要なため、この問題の原因があります。 IonCubeは、これが将来解決することを望んでいると私にツイートで言及しました。 (タイムラインなし)

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