Migrate 32bit to 64bit (FreeBSD, GDBM) に続いて、ionCube PHP Loader も問題が発生する要因の 1 つです。
従来より amd64 で動作している環境はありましたが、ionCube PHP Encoder で生成されたスクリプトファイルが使用されている様子はありませんでした。
今回の解決方法もすべての環境には当てはまらないことは予めご了承ください。まず、今回は次の様なエラーで問題が発覚しました。
cannot be processed because an untrusted PHP zend engine extension is installed
ionCube PHP Encoder を使用しない素のスクリプトファイルであれば問題ないはずですが、強要することは出来ません。
少し調査して試した限りでは、php.ini で eaccelerator.so をコメントアウトして Apache を再起動することで参照は可能となりました。
;extension = eaccelerator.so
ただし、これでは消極的な対処療法に過ぎません。さらに模索したところ、ふと思いついて ionCube PHP Encoder : ローダーのダウンロード から改めてファイルをダウンロードして展開したところ、新旧でファイルサイズが異なることに気が付きました。
新 : -rwxr-xr-x 1 root wheel 978440 Jun 26 20:56 ioncube_loader_fre_5.2.so 旧 : -rwxr-xr-x 1 root wheel 978336 Jun 6 2011 ioncube_loader_fre_5.2.so
新しいファイルに差し替えた場合は eaccelerator.so をコメントアウトせずに、正常に起動して参照出来ることが確認出来ました。
phpinfo() で確認出来るバージョンは
新 : 4.2.2
旧 : 4.0.9
でした。
ソースが公開されていないプログラムの場合は修正のしようがありません。その場合は新旧のバージョンに差し替えて動作する、あるいは安定性が増すことがありますが、その典型でした。
- Migrate 32bit to 64bit (FreeBSD, PostgreSQL)
- Migrate 32bit to 64bit (FreeBSD, GDBM)
- Migrate 32bit to 64bit (FreeBSD, ionCube PHP Loader)
- Migrate to FreeBSD 9.1-RELEASE (ImageMagick 6.4)
- Migrate to FreeBSD 9.1-RELEASE (PostgreSQL)
- Migrate to FreeBSD 9.1-RELEASE (JDK 1.6)
- Migrate to FreeBSD 9.1-RELEASE (idnconv)
- Migrate to FreeBSD 9.1-RELEASE (PDFJ)