Является ли APC совместимым с PHP 5.4 или PHP 5.5?

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

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

Zend OPCache, включенный в PHP 5.5

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

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

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

APC FOR PHP 5.4+ ЕЩЕ ПОЛУЧЕНА В БЕТА

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

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

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

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

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

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

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

13 февраля 2013 года Zeev Suraski объявил о доступности исходного кода 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 доступен, исправляя ряд segfaults .


2012-08-16 :
Тег APC 3.1.12 был создан, но по-прежнему отмечен как бета-версия , доступная на странице APC PECL , а также журнал изменений .
На этот раз исправлено множество ошибок, связанных с bin_dump.


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


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

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

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

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

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

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

cd apc-trunk

phpize

./configure

делать

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

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

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

ОБНОВИТЬ!!!

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

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

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

Жалкий.

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

Возможно, это apc для x64 на окнах. Он (версия 4.0.1) работал над моим приложением.

Я использую 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 и устраняет сообщение рекомендации для установки и включения APC для вашего PHP и Xdebug.

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

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

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

Несколько часов назад я столкнулся с одной такой ошибкой, и оказалось, что использование APC из ствола SVN – это путь. Надеюсь это поможет!

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

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.

Zend OPCache включен в PHP 5.5 под именем php_opcache.dll в каталоге php / ext. Чтобы активировать его:

  • Добавьте файл php_opcahe.dll в качестве расширения zend в файле конфигурации php.ini .
  • Используйте формат zend_extension = path / to / php / ext / php_opcache.dll .
  • Поместите zend_extension перед xDebug zend_extension в конфигурацию php.ini .
  • Сохраните файл конфигурации php.ini и перезапустите сервер.

APC имеет новую версию: 3.1.14 с 2 января, которая устраняет некоторые ошибки: http://pecl.php.net/package/APC

Тем не менее, я запускаю PHP 5.4.x с APC 3.1.13 из репозитория dotdeb без каких-либо проблем до сих пор, поэтому для меня я бы сказал, что он стабильный. dotdeb также сообщил мне, что они будут включать обновленный APC в следующем выпуске PHP, который, как ожидается, будет 5.4.11.

Мы экспериментируем с ошибками памяти (apache segfault) с PHP 5.4.26 и APC 3.1.9. Для APC на PHP 5.4.X есть открытая ошибка: https://bugs.php.net/bug.php?id=61934

Я рекомендую не использовать этот плагин на PHP> 5.3.

В XAMPP версии 5.6.3 (PHP 5.6.3) все, что вам нужно сделать в вашем ini.php, это:

 [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 [XDebug] zend_extension = "C:\xampp\php\ext\php_xdebug.dll" xdebug.max_nesting_level = 200 xdebug.profiler_append = 1 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 ;xdebug.profiler_output_dir = "C:\xampp\tmp" ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" ;xdebug.remote_enable = 0 ;xdebug.remote_handler = "dbgp" ;xdebug.remote_host = "127.0.0.1" ;xdebug.trace_output_dir = "C:\xampp\tmp" 

Конфигурация для рамки symfony2.