Совместим ли APC с PHP 5.4 или PHP 5.5? - PullRequest
103 голосов
/ 08 марта 2012

Не похоже, что APC был обновлен в соответствии с выпуском php 5.4 (хотелось бы, чтобы они включили APC в ядро ​​PHP, как первоначально планировалось).

Не могу найти однозначного ответа на вопрос, работает ли текущий APC с php 5.4+. Мне удалось найти пакеты Ubuntu для php 5.4, но пакеты php-apc не будут установлены.

Ответы [ 14 ]

163 голосов
/ 11 апреля 2012

Zend OPCache включен в PHP 5.5

21 марта 2013 года была выпущена PHP 5.5 beta 1, включающая «Zend OPCache» - похоже, это будет замена для APC в будущем, поскольку она включена в ядро ​​PHP, и должен поддерживаться для каждого нового выпуска.

Я бы лично посоветовал тем, кто зависит от APC для его кэширования кода операции, протестировать свой код с помощью предстоящего встроенного кэша кода операции и сообщить обо всех возникших проблемах, чтобы обеспечить стабильный финальный выпуск.

Я не знаю, что это значит для будущего БТР.

APC для PHP 5.4+ все еще помечен как бета

Это означает, что разработчики не считают его полностью стабильным . Хотя многие люди не испытывают никаких проблем с текущими выпусками SVN, все еще существует странный отчет о крайних случаях от людей с определенными конфигурациями или с большой нагрузкой.

Как и все, что вы хотели бы использовать в производственной среде, убедитесь, что вы тщательно протестировали любой выпуск (бета или стабильный) в средах разработки или подготовки к работе сначала . Это включает нагрузочное тестирование!

Начиная с версии 3.1.13, коммиты в репозиторий SVN несколько замедлились, а в списке ошибок не так много недавних дополнений. Делай из этого то, что будешь.

10 декабря 2012 г. 21:05 Расмус Лердорф написал:

APC сейчас находится на уровне 5.4, где я не думаю, что есть более крайние случаи, чем у нас в 5.3. Ни один из них не идеален, но он достаточно близок для большинства сайтов.

Всем, у кого есть навыки C / GDB и немного свободного времени, настоятельно рекомендуется замаскировать список ошибок и посмотреть, смогут ли они что-то исправить, или улучшить этот бесплатный продукт с открытым исходным кодом , который мы все рассчитывают.

Существуют альтернативные решения, Википедия предоставляет список PHP-ускорителей .

13 февраля 2013 года Зеев Сураски объявил о доступности Zend Optimizer + исходный код .

Было довольно продолжительное обсуждение интеграции Zend Optimizer + в ядро ​​PHP в следующей основной версии (версия после 5.5). Если это так, люди могут заранее ознакомиться с Zend Optimizer +.


Не использовать APC 3.1.14

APC 3.1.14 был удален из загрузок PECL из-за некоторых серьезных проблем с памятью, которые были обнаружены, но еще не отслежены.

Если вы уже используете 3.1.14, вы можете понизить версию до выпуска 3.1.15. Помните, это все еще бета . Если вы используете его вообще, вы используете его на свой страх и риск.

2013-01-02 :
APC 3.1.14 доступен , с добавлением совместимости с PHP 5.5, в дополнение к исправлению большого количества других ошибок .

Все еще бета


2012-09-03 :
APC 3.1.13 доступно, исправление нескольких ошибок по умолчанию .


2012-08-16 :
Тег APC 3.1.12 создан, но все еще помечен как beta , он доступен на странице APC PECL , а также история изменений .

На этот раз исправлено множество ошибок, связанных с bin_dump.


2012-07-19 :
Тег APC 3.1.11 был создан, но все еще помечен как beta , он доступен на странице APC PECL , а также изменения . Я следил за соответствующими списками рассылки, и они все еще активно работают над исправлением ошибок APC, однако это сложный модуль, и не многие люди, кажется, справляются с этой задачей. В этом выпуске исправлены неприятные ошибки stat = 0 при включении файлов.


2012-04-11 :Сегодня был создан тег APC 3.1.10 , а бета-версия 3.1.10 была размещена на странице APC PECL В changelog говорится:

  • Добавить поддержку PHP 5.4 (Дмитрий, Анатолий, Пьер)
  • Исправлена ​​ошибка # 22679: Исправлена ​​ошибка apc_bin_dump для констант.Используйте IS_CONSTANT_TYPE_MASK для обработки всех констант, включая неквалифицированные (вместо проверки ~ IS_CONSTANT_INDEX)
  • Исправлена ​​ошибка # 23822, сбой php при перезапуске apache
10 голосов
/ 21 сентября 2012

Начиная с PHP 5.4.7 и APC 3.1.13 (и даже магистрали SVN APC по состоянию на 2012-09-19), хотя он «совместим», он не стабилен на серверах с большой нагрузкой, особенно если выиспользуя PHP-FPM и $ GLOBALS.Некоторые обсуждения разработчиков на APC говорят о неразрешенных дополнительных случаях .

Я отвечаю на этот вопрос через 6 месяцев после того, как его спросили, потому что проблема все еще распространена, и сталкиваюсь с этой веткойОтвет, подобный моему, - это то, что заставило меня сделать прыжок к PHP 5.4 с APC и сгореть.Надеюсь, это поможет людям избежать боли.

6 голосов
/ 13 марта 2012

Похоже, что ошибка "возможно" была исправлена ​​в последней ревизии в стволе. У меня теперь работает с PHP 5.4.0.

svn co http://svn.php.net/repository/pecl/apc/trunk/ apc-trunk

CD APC-транк

phpize

. / Configure

сделать

сделать установку

5 голосов
/ 10 марта 2012

Нет, APC 1.3.9 (и на данный момент даже транк svn) не совместим с php 5.4.0, я знаю, потому что я потратил часы, пытаясь заставить его работать (тестировал различные svn /php.ini settings / флаги компилятора / вы называете это).

Это просто смешно, APC - одно из самых популярных расширений PHP, и вы ожидаете, что через несколько недель, пройдя 8 PHP 5.4 RC, у них будет время, чтобы заставить APC работать вместе с ним.

Патетическая.

5 голосов
/ 09 марта 2012

Ну, я пробую последние несколько дней, и я никак не могу заставить кеширование кода операции работать с php 5.4. Xcache не скомпилируется, и apc не распознает определенные классы при кэшировании. Я думаю, что это ошибка, о которой говорит Саймон.

Я слышал, что в стволе были некоторые исправления, но я также попробовал последние источники ствола, но те же ошибки продолжают возвращаться. Я думаю, что php без кеширования кода операции (сейчас его нет) не заслуживает внимания. Надеюсь, что люди в apc исправят это как можно скорее.

ОБНОВЛЕНИЕ !!!

Xcache 2.0.0-rc1 отсутствует и совместим с php 5.4. Наслаждайтесь!

4 голосов
/ 28 сентября 2014

Я использую AMPPS с версией PHP 5.5.19.С некоторого времени именно с выпуска PHP 5.5 - APC заменен на Zend OPCache, который включен в PHP 5.5 и выше.Теперь все, что вам нужно сделать, чтобы включить «APC» (в настоящее время «OPcache»), это отредактировать ваш php.ini.Перед разделом [XDebug] добавьте текущие строки:

php.ini

...

[OPcache]

zend_extension=php_opcache.dll

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

...

Обратите внимание, что нам нужно иметь два экземпляра из:

zend_extension =

Один в [OPcache] и один в разделе [XDebug].Xdebug часто не предоставляется по умолчанию при установке вашего сервера xampp / ampps / easyPHP.Вы можете оказаться в ситуации, когда вам нужно будет скачать расширение Xdebug.Вы можете сделать это легко с помощью онлайн-приложения, которое определяет правильный Xdebug для вашего php.Посетите http://xdebug.org/wizard.php и следуйте их простым инструкциям.После того, как вы загрузили правильную версию Xdebug для вашей версии php - отредактируйте ссылку вашего zend_extension в разделе [XDebug].

...

[XDebug]
zend_extension = "C:\Program Files (x86)\Ampps\php\ext\php_xdebug-2.2.6-5.5-vc11.dll"
......

Обратите внимание!что вы должны добавить раздел OPcache перед XDebug в вашем файле php.ini !!!Если вы правильно следуете за мной, у вас должно быть два экземпляра zend_extension в вашем файле php.ini (один в OPcache и один в разделе Xdebug).

Это прекрасно работает для Symfony2 framework и устраняет необходимостьрекомендательное сообщение для установки и включения APC для вашего PHP и Xdebug.

Сообщение для тех, кто запустил symfony 2 и удалил предупреждающее сообщение из «web / config.php», но все еще сталкивается с проблемой при запуске из командной строкиmsgstr "php app / check.php".Если это происходит, это означает, что ваша консоль использует другой файл php.ini.Измените переменную PATH системы - укажите ее в правильном каталоге php (где у вас есть файл php.exe и который используется вашим локальным сервером).

Если вам нужно более подробное объяснение, дайте мне знать в комментарииниже.С уважением.

4 голосов
/ 14 августа 2013

Я нашел apcu http://windows.php.net/downloads/pecl/releases/apcu/

Может быть, это apc для x64 в Windows.Он (версия 4.0.1) работал на моем приложении.

3 голосов
/ 09 марта 2012

Я обнаружил, что необходимо очищать кэш кода операции при каждом запросе страницы, в противном случае классы, реализующие интерфейсы, не загружаются. Это было скомпилировано из последней версии svn trunk, Apache 2.4.1, PHP 5.4.0.

3 голосов
/ 08 марта 2012

Кажется, есть некоторые проблемы, которые еще предстоит устранить. Проверьте ошибки , и вы сможете выяснить, как решить вашу конкретную проблему.

Я имел дело с одной такой ошибкой несколько часов назад, и оказалось, что использование APC из магистрали SVN было подходящим способом. Надеюсь, это поможет!

2 голосов
/ 23 января 2014

APC - не рекомендуется
Лично я не использовал APC с PHP 5.4 или PHP 5.5, но последний стабильный APC не совместим с PHP 5.4, последняя бета-версия APC может использоваться с 5.4, нонаписано, что у APC все еще есть отрицательные проблемы.

Если у вас PHP 5.5
, просто используйте Zend Opcache .Это из коробки, поэтому проблемы минимальны.

Если у вас PHP 5.4
Я рекомендую XCache .Он полностью совместим с PHP 5.4 и 5.5.Активно развивается.Последняя стабильная версия была выпущена 3,5 месяца назад (10 октября 2013 г.).Это улучшает производительность, даже если вы используете fastcgi.

...