ローダーのインストール方法
ローダーファイルはionCube EncoderでエンコードされたPHPスクリプトを読み込むためのものです。このファイルを使用するには、 ランタイム ロードでインストールする方法と、php.iniファイルでインストールする2通りの方法があります。
1.用語の説明
ローダーは、ionCube PHP Encoderでエンコードしたスクリプトの復号化に使用され、(サーバーのOSによって異なる).dllファイルと.soファイルがあります。 PHPではスクリプトを起動したさいに.dll(または、.so)をロードすることができます。そのためには、dl関数を使用します。ローダーを起動するさいに使用されるメカニズムを、 ランタイム ロードと呼びます。
ウェブサーバーがPHPを使用する場合、ウェブサーバーの起動時にphp.iniファイルが読み込まれます。ローダーをインストールした状態で起動するためには、php.ini設定ファイルに1行追加する必要があります。
2.インストール方法
2-1.ランタイム ロードでのインストール方法
※ インストール前に
ランタイム ロードでインストールする場合、実行サーバの環境(php.iniの設定)が以下の設定になっている必要があります。インストール前にご確認ください。
- enable_dl=On
- safe_mode=Off
- Thread Safety:disabled
■ PHP5.2.4以前のバージョンをご使用の場合
- ランタイムローディングを有効にするには、ローダーが含まれる「ionucube」というディレクトリを、エンコードファイルの最上層ディレクトリの中あるいはそれより上の階層に置いてください。
例えば、エンコードされたファイルが「/var/www/htdocs/」というディレクトリにあったとすると、「ioncube」ディレクトリを「/var/www/htdocs」か「/var/www」に置いてください。
■ PHP5.2.5以降のバージョンをご使用の場合
PHP5.2.5以降をご使用の場合、ランタイム ロードでのインストールに対応していないため、誠に恐れ入りますが、php.ini ファイルにインストールしていただくか、以下の方法でインストールしてください。
- extension directory内にローダーのファイルを置いてください。
※ionCube PHP Encoderのバージョン6.5.13以前のものをご利用の場合 エンコードの際に、「newpremable.php」ファイルを使用して、ヘッダーの内容を置き換えてください。
最新版6.5.16へのアップデートをご希望の場合、お問い合わせフォームよりご連絡ください。
ヘッダーの内容を置き換える方法
-
コマンドから実行する場合
以下のオプションを使用して、ヘッダーに外部ファイルのコンテンツを読み込んでください。エンコードされたファイルのヘッダーとして使用されます。
--preamble-file <ファイル>
<ファイル>の部分に「newpremable.php」を指定してください。外部ファイルからの読み込み方法に関しましては、ユーザーズ ガイドのP32にも記載されておりますので、こちらも併せてご参照ください。
-
Windows GUIを使用する場合
[Project Settings]ダイアログの[Customisation]タブをクリックしてください。 [PHP preamble]項目の[Use file]を選択し、「newpremable.php」ファイルを指定してエンコードを実行してください。
一部のレンタルサーバでは、権限の状況により利用できないことがございます。サーバの設定に関しては、ご利用の前に、各レンタルサーバ会社にお問い合わせください。
■ ランタイム ロードのトラブルシューティング
エンコードファイルがランタイムローディングで実行ない場合は、本パッケージに含まれている'ioncube-loader-helper.php' と 'ioncube-encoded-file.php'ファイルを使って以下のテストを行ってみてください。
- 1. 'ioncube-loader-helper.php' と 'ioncube-encoded-file.php'PHPスクリプトを、エンコードファイルを動かしたいディレクトリの中にコピーしてください。
- 2. 'ioncube-loader-helper.php'スクリプトにWebサーバから、もしくはPHP cliある いはCGIで実行してください。
- 3. 'Run-time Loading Compatibility Test'オプションを選択してください。
- 4. スクリプトは指定されたローダーにインストールしようとします。そして、インストールに失敗すると問題の原因が出力されます。
- 5. ランタイム ロードでのインストールエラーの確認が完了したら、サーバー環境で 問題の修正方法の説明か、php.iniにローダーをインストールする必要があるということが報告されます。
- 6.スクリプトの実行結果から問題を解決できなかった場合は、support@ioncube.jpま でスクリプトの出力結果と共にメールを送信してください。
2-2.php.ini ファイルにインストールする
php.iniファイルにインストールする方法も同様に簡単で、エンコードファイルの実行を最適化させます。また、セーフモードを使用しているシステム、 もしくは PHP がスレッドをサポートした状態で構築されている (Windows 環境など) の場合はこちらを実行する必要があります。
'ioncube-loader-helper.php'ファイルがこのインストールの解説を行います。このファイルにWebサーバーかPHP cliあるいはCGIでアクセスして、「php.ini installation instructions.」をクリックしてください。 アクセスすると、どのローダーをインストールするか、どのファイルを編集するか、何を追記するべきか(1行だけ編集が必要です)を自動的に表示します。
このアシスタントスクリプトなしでインストールを進める場合は、以下の項をお読みください。
■ php.iniファイルにインストールする方法
インストールの前に以下の点を御確認ください
1) お客様がお使いのOSについて
2) お客様がお使いのPHPのバージョンについて
3) PHPはスレッド化されたものかどうかについて
4) php.iniファイルの場所について
phpinfo(1)を呼び出すと、必要な情報が出力されます。
例):
- PHP Version => 4.3.0
- System => Linux pod 2.2.16 #1 Sat Sep 30 22:47:40 BST 2000 i686
- Build Date => May 28 2003 13:41:42
- Configure Command => './configure'
- Server API => Command Line Interface
- Virtual Directory Support => disabled
- Configuration File (php.ini) Path => /usr/local/lib/php.ini
- PHP API => 20020918
- PHP Extension => 20020429
- Zend Extension => 20021010
- Debug Build => no
- Thread Safety => disabled
これによって以下のことがわかります:
1) OSが Linuxであること。
2) PHPのバージョンは4.3.0であること。
3) PHPはスレッド化されていないということ。
4) php.iniファイルが /usr/local/lib にあること。
この情報を基にローダーをインストールします。
■ Unix系OSをご使用の場合
PHPがスレッド化されていない場合:
ioncube_loader_<OSの種類>_<お使いのPHPのバージョン>.so
PHPがスレッド化されている場合:
ioncube_loader_<OSの種類>_<お使いのPHPのバージョン>_ts.so
<OSの種類>は'lin' は Linuxを、 'fre' は FreeBSDを、'sun' は Solarisをそれぞれ表しています。
<お使いのPHPのバージョン>は4.1や4.2、4.3といった、使用しているPHPバージョンの最初の2文字を入力します。 そして、php.ini ファイルを修正し、他の zend_extension 項目よりも先に、以下の記述を追加します。
zend_extension = /<パス>/ioncube_loader_<OSの種類>_
<お使いのPHPのバージョン>.so
ただし、Threaded Safety 機能をもつ PHP の場合は以下の通り記述します。
zend_extension_ts = /<パス>/ioncube_loader_<OSの種類>_
<お使いのPHPのバージョン>_ts.so
<OSの種類> と <お使いのPHPのバージョン>はお使いのシステムのOSの種類とPHPのバージョンについて、また<パス>はローダーがインストールされている場所を適宜入れ替えてください。
php.iniファイルに他のzend_extensionの入力がある場合、既存する入力の間にこの新しい入力をします。
例えば:
LinuxにPHP4.1.2とApache1を走らせている場合は以下のように追加します:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_4.1.so
FreeBSDにPHP4.3.1とApache2を走らせている場合は以下のように追加します:
zend_extension_ts = /usr/local/ioncube/ioncube_loader_fre_4.3_ts.so
■ Windowsをご使用の場合
ローダーを以下のように呼び出してください:
ioncube_loader_win_<お使いのPHPのバージョン>.dll
<お使いのPHPのバージョン>は4.1や4.2、4.3といった、使用しているPHPバージョンの最初の2文字を入力します。
php.iniファイルに以下のように加えます:
zend_extension_ts = <ドライブ>:\<パス>\ioncube_loader_win_
<お使いのPHPのバージョン>.dll
<ドライブ> および <パス> は、ionCube ローダーの場所を指定します。また、<お使いのPHPのバージョン> には、あなたのシステムで使用している PHP のバージョンを指定します。
例えば:
zend_extension_ts = c:\WINNT\ioncube_loader_win_4.3.dll
3.ローダーが正常に動作しない場合
- phpinfo() 実行時の出力にコンパイルオプション中に --enable-versioning が含まれているかどうかをご確認ください。 このコンパイルオプションが指定されていると、ローダーが正しく読み込まれなくなるという現象が確認されていまます。 その場合、PHPをこのコンパイルオプションを付けずに、再コンパイルする必要があります。
- php.ini 内で、APC、eAccelarator、Xdebug等の高速化ツール、デバッグツール等のエクステンションが読み込まれている場合、そちらを一度はずしてご確認ください。




