サードパーティのPHP拡張子(.so)をUbuntu11.10のPHP5.3.6-13にインストールして、Web環境で使用しようとしています。ベンダーのドキュメントでは、dl()
関数を使用してライブラリを動的にロードすることを提案しています。
サンプルコードを試してみると、PHP 5.3で関数が非推奨になっているため、dl()
が使用できないことがわかりました(致命的なエラー:未定義の関数dl()の呼び出し) 。dl()
しかしenable_dl
、php.iniには設定ルールがあり、他の情報源enable_dl=On
によると、php.ini変数( 、、safe_mode=Off
にリストされていないdisable_functions
)を変更してapacheを再起動するだけでdl()を使用できるはずです。私がそれを試してみると、dl()
まだ未定義です。
そこで、 PHP 5.3 SAPIの変更に関する注意事項を掘り下げて、次のことを見つけました。
dl()関数はデフォルトで無効になり、CLI、CGI、および埋め込みSAPIでのみ使用できるようになりました。
これは、WebSAPIを使用するPHP5.3+で「デフォルトで無効になっている」dl()
だけでなく、実際には「PHP構成オプションを変更しても完全に利用できない」ことを意味しますか?何を微調整しても仕事ができないので、そういう風に見えます。dl()
明確にするために:php.iniを変更して拡張機能を直接ロードできるので、これは拡張機能を機能させる方法ではなくdl()
、PHP5.3以降の関数とその状態に関する問題です。どのような状況でも利用できなくなった場合は、ベンダーに伝えて、ドキュメントを更新できるようにしたいと思います。しかし、それが利用可能であるはずで、私が何かを逃しているだけなら、私もそれを聞きたいです。