Обновите APC для работы с Symfony 2 на Zend Server и OSX

Возможный дубликат:
Как мне обновить APC на Zend Community Server (необходимо для Symfony2)?

Я пытаюсь настроить новое стандартное приложение Symfony 2, и оно продолжает говорить мне, что мне нужно обновить расширение php APC.

Дело в том, что на моем Zend Server под управлением OSX у меня уже установлена ​​самая новая версия APC, 3.1.9.

Я тестировал Ubuntu с той же средой, Zend Server и той же версией APC, и все работает нормально, так что проблема действительно в OSX.

Судя по всему, в OSX расширение APC встроено в Zend Server, а в Ubuntu — нет.

Кто-нибудь знает, как решить эту проблему?


person Daniel Ribeiro    schedule 14.03.2012    source источник
comment
comment
Что ж, оказывается, решение этого вопроса даже не было решением. Я хотел бы продолжать использовать Zend Server и не переключаться на MAMP. Есть идеи?   -  person Daniel Ribeiro    schedule 15.03.2012
comment
Но это не работает. Даже если вы включаете или отключаете столько раз, сколько хотите, Zend Server не распознает расширения APC, установленные в php.ini, ни как обычное расширение, ни как расширение Zend.   -  person Daniel Ribeiro    schedule 15.03.2012
comment
Не поймите меня неправильно, но это не главное. Мне нужно решить эту проблему.   -  person Daniel Ribeiro    schedule 15.03.2012
comment
Да, это хорошее начало, но, похоже, у них пока нет ответа.   -  person Daniel Ribeiro    schedule 15.03.2012
comment
@leek, это не работает, я уже пробовал. Однако один вопрос: как включить расширение PECL APC в php.ini? Как zend_extension или простое расширение?   -  person Daniel Ribeiro    schedule 15.03.2012
comment
Нужно ли для этого отключать встроенное расширение APC Zend Server?   -  person Daniel Ribeiro    schedule 15.03.2012
comment
К вашему сведению: я удалил свои комментарии и опубликовал все в качестве ответа.   -  person leek    schedule 15.03.2012
comment
Если вас не устраивает ответ на вопрос, который является дубликатом, вы можете предложить награду за этот вопрос. Существует конкретная причина вознаграждения по причинам, которые вы указали в комментариях выше.   -  person casperOne    schedule 18.03.2012


Ответы (1)


второй ответ здесь предполагает, что это так же просто, как отключить/повторно включить APC.

Тем не менее, есть открытая проблема Symfony (#227) здесь.

Я бы предложил установить расширение APC отдельно и попробовать отключить встроенную версию Zend Server. Если я правильно помню, порядок загрузки дополнительных расширений в Zend Server php.ini имеет значение.

Если вы используете Homebrew, установите APC с помощью этой формулы и следуйте инструкциям установщика (включить с помощью extension, а не zend_extension). Можно попробовать не отключая встроенный АПК, но во избежание конфликтов я бы его отключил.


Обновление №1. Еще пара вещей, которые стоит попробовать:

  • Убедитесь, что Zend Optimizer+ отключен.
  • Отключить «Режим совместимости APC» Zend Server
  • zend_optimizer.optimization_level = 0

Обновление №2. Поскольку вам нужна 32-разрядная версия APC, попробуйте следующее:

cd /usr/local/src
pecl download apc
tar -zxvf APC-*.tgz
cd APC-*
phpize
./configure MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS="-arch i386 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -g -Os -pipe" CXXFLAGS="-arch i386 -g -Os -pipe" LDFLAGS="-arch i386 -bind_at_load" --enable-apc-debug=no --enable-apc-filehits=no --enable-apc-spinlocks=no --enable-apc-memprotect=no --enable-apc-pthreadmutex=yes --enable-apc-pthreadrwlocks=no
make
make install

После завершения попробуйте это на Zend Server.


Обновление №3: ознакомьтесь с эта статья Ральфа Шиндлера "Компиляция Gearman (или чего-либо) для Zend Server CE на Snow Leopard". И здесь это еще один. Возможно, в командах './configure' есть что-то отличное от тех статей, которые вам подойдут.

person leek    schedule 15.03.2012
comment
Я сейчас на работе, так что я попробую это в конце дня и вернусь к вам. Спасибо за внимание! - person Daniel Ribeiro; 15.03.2012
comment
Оказывается, это решение не работает. Я пробовал разными способами, и у меня ничего не получается. Формула загружает APC из pecl, и его активация на php.ini не распознается Zend Server. - person Daniel Ribeiro; 16.03.2012
comment
@drgomesp: Вы отключили Zend Optimizer? Вы не можете запустить их обоих вместе. - person leek; 16.03.2012
comment
Теперь я получаю следующее сообщение на панели расширений: Системе не удалось загрузить это расширение. Сообщение журнала показывает: /usr/local/zend/lib/php_extensions/apc.so: mach-o, но неправильная архитектура в Unknown в строке 0 - person Daniel Ribeiro; 16.03.2012
comment
Оказывается, ошибка вызвана компиляцией расширения на x86_64, а Zend Server CE работает только с i386. Теперь моя проблема состоит в том, чтобы узнать, как скомпилировать apc для i386. - person Daniel Ribeiro; 17.03.2012
comment
@drgomesp: Проблема, скорее всего, в том, что у вас неправильная версия Zend Server для вашей архитектуры. Когда вы устанавливали APC через homebrew, он был скомпилирован для вас (см. ">здесь). Попробуйте загрузить другую версию Zend Server, x86_64. - person leek; 17.03.2012
comment
Я не могу толком прочитать .rb, но с помощью команды file я вижу, что apc.so генерируется как арка x86_64, когда все расширения, поставляемые с Zend Server, — это i386. Могу ли я адаптировать этот код к чему-нибудь, чтобы скомпилировать его как i386? Zend Server не имеет версии x86_64 для OSX... - person Daniel Ribeiro; 17.03.2012
comment
@drgomesp: попробуйте мое последнее обновление ответов - person leek; 17.03.2012
comment
Пытаясь вручную скомпилировать, как вы сказали при редактировании 2, я получил это сообщение в журналах: Предупреждение PHP: Запуск PHP: apc: невозможно инициализировать модуль Модуль, скомпилированный с модулем API = 20090626 PHP, скомпилированный с модулем API = 20100525 Эти параметры должны совпадать in Неизвестно в строке 0 - person Daniel Ribeiro; 17.03.2012
comment
@drgomesp: Похоже, вы запустили phpize из версии PHP, установленной с OSX, а не из версии, установленной с Zend Server. Если вы запускаете which php и он не указывает на Zend Server phpize, попробуйте повторно запустить его с абсолютным путем. - person leek; 17.03.2012
comment
Я понял это, а затем попытался запустить phpize из пути /usr/local/zend/bin. Все та же проблема. Есть идеи? - person Daniel Ribeiro; 17.03.2012
comment
У меня закончились идеи, единственное, что я могу сказать, это попробовать загрузить другую версию APC с PECL и посмотрите, сработает ли это. Вернитесь к 3.1.6 и попробуйте это. - person leek; 17.03.2012
comment
Та же ошибка =/. Думаю, мне придется отправиться в MAMP. Тем не менее, большое спасибо за вашу помощь! - person Daniel Ribeiro; 17.03.2012
comment
Homebrew может установить все, что вам нужно. Проверьте homebrew-alt для Apache и homebrew-php для PHP< /а>. - person leek; 17.03.2012
comment
@drgomesp: Также смотрите мое третье обновление - person leek; 17.03.2012
comment
Насчет доморощенного, он корректно устанавливает apc, но с неправильной архитектурой. Статья Ральфа Шиндлера — хорошая отправная точка. Я проверю это. Спасибо - person Daniel Ribeiro; 17.03.2012
comment
Ничего о статье Ральфа Шиндера. Все равно не работает =/ - person Daniel Ribeiro; 18.03.2012