1

私は周りを見回しました(最も関連性が高いのはこれでした。)

静的ライブラリ (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 と拡張機能のみを使用する必要がありますか?

4

1 に答える 1

0

私はこれを理解することができなかったので、代わりにPHPをCGIとして構築し、必要な場合にのみ使用しました(システムのphpインストールに何もするのではなく)

于 2013-01-02T15:10:20.273 に答える