Установить расширение YAML Pecl PHP на MAMP

Я работаю над проектом с рядом разработчиков над Git, и существующая кодовая база использует расширение PECL YAML PHP (v1.0.1).

Я пробовал несколько шагов, чтобы установить расширение PECL YAML на моем сервере MAMP, и безуспешно!

Я предполагаю, что другие разработчики работают с Linux.

Первая пара попыток установки выявила эту ошибку в моем php_error_log:

"[16-июл-2011 11:29:13] Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/Applications/MAMP/bin/php5.3/lib/php/extensions/no -debug-non-zts-20090626 / yaml.so '- dlopen (/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/yaml.so, 9): подходящего изображения не найдено. Обнаружено: /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/yaml.so: mach-o, но неправильная архитектура в Unknown on line 0 "

После большого После того, как я погуглил, я понял, что не одинок, и это потому, что мое расширение, которое я скомпилировал с помощью "./pecl i yaml", было 64-битной версией

"file yaml.so": yaml.so: 64-разрядный пакет Mach-O x86_64

Однако, сравнивая это с рабочими расширениями в моей настройке MAMP, то есть «файлом xdebug.so»:

xdebug.so: универсальный двоичный файл Mach-O с двумя архитектурами
xdebug.so (для архитектуры ppc): ppc пакета Mach-O
xdebug.so (для архитектуры i386): пакет Mach-O i386

Итак, я обнаружил ряд блогов, которые помогли мне определить точную проблему.

Невозможно запустить 64-битные расширения на 32-битном сервере MAMP - делает смысл.

Мой процесс установки:

  • загрузить исходный код PECL YAML
  • извлечь tar и cd в исходный код модуля
  • phpize внутри каталога модуля
  • запустить .configure с помощью команды из блогов:

    " CFLAGS = '- O3 -fno-common -arch i386 -arch x86_64 -g -Os' LDFLAGS = '- O3 -arch i386 -arch x86_64 ′ CXXFLAGS =' - O3 -fno-common -arch i386 -arch x86_64 -g - Os './configure –-disable-зависимость-отслеживание –-disable-shared -enable-static "

  • make

  • копирует созданный модуль из modules / yaml.so в MAMP:

    "sudo cp modules / yaml.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/."

Вышеупомянутое решение, похоже, сработало для всех, кроме меня.

Мой журнал ошибок теперь сообщает следующее:

[16-июл-2011 11:09:25] Предупреждение PHP: Запуск PHP: Неверная библиотека (возможно, не библиотека PHP) 'yaml.so' в Неизвестном в строке 0

Я провел хорошую пару часов на это сейчас и мне нужна ваша помощь.

Все, что я на самом деле пытаюсь сделать, это проанализировать YAML в PHP.

У меня есть 2 варианта:

  1. Исправить и вздохнуть с облегчением

  2. Использовать вместо этого используйте класс синтаксического анализа PHP YAML и избегайте этого расширения в будущем

Проблема с вариантом 2 заключается в том, что кодовая база изменится из-за моей неспособности установить расширение.

Любой совет или решение будут очень признательны.

Ура

11
задан Ondrej Slinták 16 July 2011 в 15:00
поделиться