序章

ionCube は、暗号化されたPHPファイルをロードし、Webページを高速化するPHPモジュール拡張機能です。 多くの場合、PHPベースのアプリケーションで必要になります。 このチュートリアルでは、Ubuntu16.04サーバーにionCubeをインストールします。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • sudo非rootユーザーとファイアウォールを備えた1つのUbuntu16.04サーバー。これは、この初期サーバーセットアップチュートリアルに従ってセットアップできます。
  • ApacheNginxなどのPHPがインストールされたWebサーバー。 Webサーバー自体のインストール、ファイアウォールの更新、およびPHPのインストールの手順に従います。

ステップ1—適切なionCubeバージョンの選択

選択するionCubeのバージョンがPHPのバージョンと一致することが重要であるため、最初に次のことを知っておく必要があります。

  • Webサーバーが実行しているPHPのバージョン、および
  • 32ビットまたは64ビットの場合。

64ビットのUbuntuサーバーを使用している場合は、おそらく64ビットのPHPを実行していますが、確認しましょう。 そのために、小さなPHPスクリプトを使用して、サーバーの現在のPHP構成に関する情報を取得します。

nanoまたはお気に入りのテキストエディタを使用して、Webサーバーのルートディレクトリにinfo.phpファイルというファイルを作成します(変更していない限り、/var/www/htmlのようになります)。

  1. sudo nano /var/www/html/info.php

以下をファイル内に貼り付け、保存して閉じます。

info.php
<?php
phpinfo();

ファイルへの変更を保存した後、お気に入りのブラウザでhttp://your_server_ip/info.phpにアクセスします。 開いたWebページは次のようになります。

Ubuntu 16.10 default PHP info

そのページから、PHPバージョンと書かれている上部のヘッダーを見てください。 この場合、7.0.8を実行しています。 次に、System行を確認します。 x86_64 で終わる場合は、64ビットPHPを実行しています。 i686 で終わる場合は、32ビットです。

この情報を使用して、ダウンロードとインストールを続行できます。

ステップ2—ionCubeを設定する

ionCubeダウンロードページにアクセスし、OSに基づいた適切なダウンロードリンクを見つけてください。 この例では、この64ビットLinuxバージョンが必要です。 サイトのtar.gzリンクをコピーして、ファイルをダウンロードします。

  1. wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

次に、アーカイブを抽出します。

  1. tar xvfz ioncube_loaders_lin_x86-64.tar.gz

これにより、ioncubeという名前のディレクトリが作成され、さまざまなPHPバージョンのさまざまなファイルが含まれます。 PHPバージョンに適したフォルダを選択してください。 この例では、ファイルPHPバージョン7.0、つまりioncube_loader_lin_7.0.soが必要です。 このファイルをPHP拡張フォルダーにコピーします。

拡張機能フォルダのパスを見つけるには、http://your_server_ip/info.phpページをもう一度確認し、extended_dirを検索します。

extension_dir PHP configuration directive

この例では、/usr/lib/php/20151012なので、ファイルをそこにコピーします。

  1. sudo cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/

PHPが拡張機能をロードするには、それをPHP構成に追加する必要があります。 メインのphp.iniPHP構成ファイルでそれを行うことができますが、別のファイルを作成する方がクリーンです。 競合の可能性を回避するために、この個別のファイルを他の拡張機能の前にロードするように設定できます。

カスタム構成ファイルを作成する場所を見つけるには、http://your_server_ip/info.phpをもう一度見て、このディレクトリをスキャンして追加の.iniファイルを検索します。

Additional PHP configuration files

したがって、/etc/php/7.0/apache2/conf.dディレクトリ内に00-ioncube.iniという名前のファイルを作成します。 ファイル名の先頭にある00は、このファイルが他のPHP構成ファイルの前にロードされることを保証します。

  1. sudo nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini

次の読み込みディレクティブを貼り付けて、ファイルを保存して閉じます。

00-ioncube.ini
zend_extension = "/usr/lib/php/20151012/ioncube_loader_lin_7.0.so"

上記の変更を有効にするには、Webサーバーを再起動する必要があります。

Apacheを使用している場合は、次を実行します。

  1. sudo systemctl restart apache2.service

Nginxを使用している場合は、次を実行します。

  1. sudo systemctl restart nginx

php-fpmを使用している場合は、再起動する必要がある場合もあります。

  1. sudo systemctl restart php7.0-fpm.service

最後に、PHP拡張機能がインストールされて有効になっていることを確認しましょう。

ステップ3—ionCubeのインストールを確認する

http://your_server_ip/info.phpページに戻り、ページを更新して「ionCube」キーワードを検索します。 これで、ionCube PHPローダー(有効)が表示されるはずです。

ionCube installed

これにより、PHPionCube拡張機能がサーバーにロードされていることが確認されます。

info.phpスクリプトを保持すると、潜在的な攻撃者がサーバーに関する情報を見ることができるため、セキュリティ上のリスクが少しある可能性があります。今すぐ削除してください。

  1. sudo rm /var/www/html/info.php

不要になった余分なダウンロードされたionCubeファイルを安全に削除することもできます。

  1. sudo rm ioncube_loaders_lin_x86-64.tar.gz
  2. sudo rm -rf ioncube_loaders_lin_x86-64

これで、ionCubeが完全にセットアップされ、機能するようになりました。

結論

ionCube PHP拡張機能がインストールされたので、それを必要とする任意のPHPアプリケーションに進むことができます。