私は周りを見回しました(最も関連性が高いのはこれでした。)
静的ライブラリ (PGI でビルド) をラップするカスタム php 拡張機能を作成しました。
簡単ではありませんでしたが、一般的には次のとおりです。
- ダウンロードしたPHPソース
- チュートリアルを使用して拡張機能を作成しました
- export LDFLAGS="-L/home/matt/fstd_php/php-src/ext/fstd/lib -L/opt/pgi/linux86-64/2012/libso"
- export LIBS="-lrmn -lpgf90 -lpghpf2 -lpgf90rtl -lpgftnrtl -lpghpf_rpm -lpgc -lrt -lm"
- 拡張機能を使用して PHP をビルドすると、動作します
Ubuntu にプリインストールされているバージョンの PHP でこれを使用する方法はありますか?
モジュールの名前は fstd です
他のモジュールのインストール方法を真似してみました (mongo を任意に選択) ので、/etc/php5/mods-available に ini ファイルを追加し、ext/fstd/modules/fstd.so で見つけた .so を /usr に追加しました/lib/php5/20100525/
phpのシステムインストールではうまくいかなかったようです。
そこで、php.ini で enable_dl を有効にして、.so をインクルードしようとしました。依存ライブラリが含まれていないようです。私は得る:
matt@khea ...php-src/ext/fstd % php -f fstd.php
PHP Warning: dl(): Unable to load dynamic library '/usr/lib/php5/20100525/fstd.so' - /usr/lib/php5/20100525/fstd.so: undefined symbol: c_fstfrm in /home/matt/fstd_php/php-src/ext/fstd/fstd.php on line 5
シンボル c_fstfrm は、ラップしようとしている静的ライブラリのシンボルです。
それで、これをシステムモジュール/拡張機能としてインストールする適切な方法はありますか? それ以外の場合、カスタム拡張機能を使用するには、自分で作成したバージョンの php と拡張機能のみを使用する必要がありますか?