Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dynamic linking PHP extension in Apache 2 and MacOSX

1 view
Skip to first unread message

Yasushi Shinjo

unread,
Sep 28, 2006, 6:35:30 AM9/28/06
to
新城@筑波大学情報です。こんにちは。

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 は何が違うのでしょうか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

Yasushi Shinjo

unread,
Sep 29, 2006, 5:47:17 AM9/29/06
to
新城@筑波大学情報です。こんにちは。

In article <3993219...@rananim.ie.u-ryukyu.ac.jp>


ko...@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> > 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
> > この問題を解決する方法はないでしょうか。

> この手の問題は、libtoolのversion でなんとかなることが多いんですが...

MacOSX の libtool って、Apple 製に見えます。Apple 頑張れって
いう意味?

------------------------------------------------------------
% libtool -V
Apple Computer, Inc. version cctools-576
% libtool
libtool: no output file specified (specify with -o output)
Usage: libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT]
Usage: libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
%
------------------------------------------------------------

動的リンクの2段重ねの問題だからね。

Apache2 -> libphp4.so -> sqlite.so
(1) (2)

で、(2) の cc で、apxs 使ったらなんとかなるのかなあ。そうい
う話は、聞いたことはないけれど。

0 new messages