Я пытаюсь установить расширение PHP intl на мою свежую установку OS X 10.6.6, используя версию PHP, поставляемую с ним (v5.3.3).
Я знаю, что расширение необходимоICU, поэтому я установил его с доморощенным.Моя установленная версия ICU - 4.4.1, и она хранится в /usr/local/Cellar/icu4c/4.4.1
.
. Я пробовал два разных способа установить расширение intl:
pecl install
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 / collator /collator_class.c: 107: ошибка: дубликат «статического» make: * [collator / collator_class.lo] Ошибка 1 ОШИБКА: сбой «make»
сборка напрямую
Я скачал текущую версию PHP (v5.3.5), а затем установил расширение intl из ext/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-битный пакет x86_64
Однако, когда я загрузил расширениев php.ini
я получил сообщение:
Предупреждение PHP: Запуск PHP: недопустимая библиотека (возможно, не библиотека PHP) '/ usr / lib / php / extensions / no-debug-non-zts-20090626 / intl.so 'в строке Неизвестно в строке 0
Понятия не имею, почему это происходит.Я предполагаю, что это потому, что расширение установлено из PHP v5.3.5, и я использую v5.3.3, но я не могу представить, что 2 выпуска исправлений повредят совместимость.
Любые идеи?
ОБНОВЛЕНИЕ 2011-03-16:
Я нашел решение!Когда я явно устанавливаю флаг -m64
в configure (который указывает gcc на создание 64-битного кода), расширение загружается правильно:
CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure