Как мне обновить APC на Zend Community Server (необходимо для Symfony2)?

Я использую последнюю версию Zend Community Server и хочу изучить Symfony2, но config.php выдает ошибку, что мой APC (альтернативный php-кеш) устарел, и мне нужно его обновить.

Я использую OS X Lion и уже нашел папку zend в:

    /usr/local/zend/

Я также загрузил исходный пакет (стабильная версия 3.1.9) с http://pecl.php.net но понятия не имею, как его скомпилировать и куда поместить.


person codepushr    schedule 09.10.2011    source источник
comment
Почему бы просто не установить СТАРУЮ версию Symfony? :) Zend Server CE выдает сообщение об ошибке «обновите APC», просто вы можете просто понизить версию Symfony   -  person KestutisIT    schedule 12.07.2013


Ответы (6)


Итак, я, вероятно, нашел лучшее решение - Zend Server имеет встроенный Zend Optimizer+, который примерно в 1,8 раза быстрее, чем APC (320 треб./с против ~190 потреб./с или обычный ультрабук).

Так что вам просто нужно закомментировать проверку APC в конфигурации Symfony2 — кэширование все равно будет работать.

Чтобы отключить APC в Symfony2, сделайте следующее:

  1. Откройте файл требований Symfony2:

/Symfony/приложение/SymfonyRequirements.php

И ЗАМЕНИТЕ следующие строки кода:

        if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.1.13', '>='),
                'APC version must be at least 3.1.13 when using PHP 5.4',
                'Upgrade your <strong>APC</strong> extension (3.1.13+).'
            );
        } else {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.0.17', '>='),
                'APC version must be at least 3.0.17',
                'Upgrade your <strong>APC</strong> extension (3.0.17+).'
            );
        }

с:

/* DISABLED FOR ZEND SERVER, USING ZEND OPTIMIZER+ INSTEAD
       if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.1.13', '>='),
                'APC version must be at least 3.1.13 when using PHP 5.4',
                'Upgrade your <strong>APC</strong> extension (3.1.13+).'
            );
        } else {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.0.17', '>='),
                'APC version must be at least 3.0.17',
                'Upgrade your <strong>APC</strong> extension (3.0.17+).'
            );
        }
*/

Источник: http://phpcloud-symfony2.pen.io/

person KestutisIT    schedule 14.07.2013
comment
Лучший ответ, так как это безусловно самое простое и быстрое решение. Однако вы должны удалить два других ответа. Обычно не рекомендуется отвечать более одного раза на один вопрос. - person Yes Barry; 04.10.2013

Я протестировал свою ранее опубликованную (а теперь удаленную) конфигурацию несколько раз, и мне пришлось отозвать руководство. Команда make test вернула кучу ошибок. Причина среди прочего в том, что Zend имеет свой собственный байт-код в некоторых расширениях (например, APC!).

Я сбросил Zend Server CE и все-таки переключился на MAMP. Попробуйте мое рабочее руководство о том, как правильно настроить Symfony 2 на MAMP: Нажмите здесь.

person codepushr    schedule 10.10.2011

Я нашел возможный решение здесь

надеюсь, это поможет

person jsteinmann    schedule 28.11.2012
comment
это также поддерживает пользователей Mac? - person codepushr; 13.07.2013

Я тоже пользователь Mac, и я столкнулся с той же проблемой с Symfony и Zend Server. В конце концов я отключил расширение apc из панели управления Zend Server. При этом предупреждение, появившееся в конфигурации symfony, превратилось в уведомление о том, что мне нужно установить apc или какой-либо другой менеджер кеша. После этого я снова включил apc, и все работает нормально. Сейчас это нехорошее решение, но, вероятно, вы сталкиваетесь с этой проблемой при попытке локальной разработки, и у вас, вероятно, не будет этой проблемы при загрузке сайта на реальный хостинг.

Я надеюсь, что это помогает!

person alghimo    schedule 09.10.2011

Насколько я знаю, Zend Server не поддерживает APC.

Они предоставляют функции-оболочки, которые отображают функции APC на объекты Zend Data Cache.

person coudenysj    schedule 25.04.2012

ТОЛЬКО ДЛЯ ОКНА

Это сработало для меня:

Включение альтернативного расширения PHP Cache (APC) в Zend Server CE

Download non-thread safe VC9 APC DLL (I went for php_apc-5.3-nts-svn20100226-vc9-x86.zip) from http://downloads.php.net/pierre/
Unzip it and put the extension dll php_apc.dll into C:\Program Files\Zend\ZendServer\lib\phpext (assuming you left the Zend Server install location as its default)
Add the following to your php.ini (in C:\Program Files\Zend\ZendServer\etc):

;Enable APC
extension=php_apc.dll
;Enable upload progress bar
apc.rfc1867=on

Give Apache/PHP a restart

Теперь проверьте phpinfo() на панели инструментов Zend, и вы должны увидеть что-то вроде следующего: apc и различные директивы выводятся в части конфигурации вывода. Любой из подключаемых модулей индикатора выполнения загрузки файлов APC (например, http://www.ibm.com/developerworks/library/os-php-v525/index.html) теперь должно работать.

person KestutisIT    schedule 12.07.2013