Я работаю над проектом с рядом разработчиков над 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 - делает смысл.
Мой процесс установки:
запустить .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
"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 варианта:
Исправить и вздохнуть с облегчением
Использовать вместо этого используйте класс синтаксического анализа PHP YAML и избегайте этого расширения в будущем
Проблема с вариантом 2 заключается в том, что кодовая база изменится из-за моей неспособности установить расширение.
Любой совет или решение будут очень признательны.
Ура