4

OS X 10.6.6 の新規インストールに、同梱されている PHP バージョン (v5.3.3) を使用して、PHP 拡張機能 intl をインストールしようとしています。

拡張機能には ICU が必要であることはわかっているので、homebrew でインストールしました。インストールされている ICU のバージョンは 4.4.1 で、に保存されてい/usr/local/Cellar/icu4c/4.4.1ます。

intl 拡張機能をインストールするために、次の 2 つの方法を試しました。

pecl インストール

pecl は ICU プレフィックスを尋ねてきました。これは/usr/local/Cellar/icu4c/4.4.1. configure問題なく実行されましたが、次のようにmake中止されました:

/private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/temp/intl/collat​​or/collat​​or_class.c:107: エラー: 'static' の重複 make: * [collat​​or/collat​​or_class.lo] エラー1 エラー: `make' が失敗しました

直接ビルド

現在のバージョンの PHP (v5.3.5) をダウンロードし、次のコマンドext/intlを実行して intl 拡張機能をインストールしました。

phpize && 
configure --enable-intl --with-icu-dir=/usr/local/Cellar/icu4c/4.4.1 && 
make && 
make test && 
sudo make install

これはうまくいったようです。PHP 拡張機能ディレクトリで拡張機能を取得しましたが、エラー メッセージは表示されませんでした。

ファイルは私に教えてくれます:Mach-O 64-bit bundle x86_64

ただし、拡張機能を にロードするとphp.ini、次のメッセージが表示されました。

PHP 警告: PHP の起動: 無効なライブラリ (PHP ライブラリではない可能性があります) '/usr/lib/php/extensions/no-debug-non-zts-20090626/intl.so' in Unknown on line 0

なぜこれが起こっているのか分かりません。拡張機能が PHP v5.3.5 からインストールされ、私は v5.3.3 を使用しているためだと推測していますが、2 つのバグ修正リリースで互換性が失われるとは考えられません。

何か案は?

更新 2011 年 3 月 16 日:

解決策を見つけました!configure でフラグを明示的に設定する-m64と (gcc に 64 ビット コードを生成するように指示します)、拡張機能が正しく読み込まれます。

CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure

4

1 に答える 1

0

少し遅れているかもしれませんが、システム ツールを使用して OS X Lion に intl を追加する方法に関する投稿を次に示します。

http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/

于 2011-12-24T10:56:07.517 に答える