Dynamic linking PHP extension in Apache 2 and MacOSX
新城@筑波大学情報です。こんにちは。
PHP 4 で、C言語で書かれたある拡張モジュール(SQLite)を入れよ
うとしたら、動的リンク・ライブラリの所でエラーになり、Apache
が起動できません。
dyld: NSLinkModule() error
dyld: Symbol not found: _executor_globals
Referenced from: /usr/local/lib/php/extensions/no-debug-zts-20020429/sqlite.so
Expected in: flat namespace
この問題を解決する方法はないでしょうか。
単純なモジュールなら、apxs でコンパイルすればいいですよね。
問題は、PHP 用のモジュールで、gcc でコンパイルするようになっ
ているものです。
問題の動的リンクのプログラム
sqlite.so ですが、次のページを参考にして、次のようにしてコン
パイルしたものです。
http://x.nest.jp/mac/060102_0032.htm
setenv PHP_SQLITE_UTF8 yes
pear install SQLite
このページでは、pear を使わないでインストールする方法が出て
ますが、こちらではつかえたので使ってみました。
環境ですが、OS は、MacOSX 10.4 Server です。Apache は、標準
の 1.3 ものではなくて、/opt/apache2 にあるApache2 の方です。
(MacOSX でも、別の環境で標準の Apache 1.x でも試しましたが、
この問題は出ていません。ただ同じ問題で、pear がまったく動か
なくなりましたが。)
少し気になったのが、extension_dirの値。
extension_dir /usr/local/lib/php/extensions/no-debug-zts-20020429
これは、別の環境で動いた所では、最後、no-zts となっていまし
た。zts と no-zts は何が違うのでしょうか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735