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

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

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

Ответ 1

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

21 марта 2013 года был выпущен PHP 5.5 beta 1, включая "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 года Зеев Сураски объявил о доступности Zend Optimizer + исходный код.

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


Не используйте APC 3.1.14

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

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

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

Тем не менее beta​​strong >


2012-09-03:
APC 3.1.13, исправление ряда segfaults.


2012-08-16:
Был создан тег APC 3.1.12, но по-прежнему отмечен как beta​​strong > , его доступный на страница APC PECL, а также changelog.

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


2012-07-19:
Создан тег APC 3.1.11, но по-прежнему отмечен как бета, его доступно на страница APC PECL, а также changelog. Я слежу за соответствующими списками рассылки, и они все еще активно работают над исправлением ошибок 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

Ответ 2

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

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

Ответ 3

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

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

cd apc-trunk

phpize

./Configure

сделать

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Ответ 7

Я использую 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 и который используется вашим локальным сервером).

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

Ответ 8

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

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

Ответ 9

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

Ответ 10

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.

Ответ 11

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

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

Ответ 12

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.

Ответ 13

Мы экспериментируем с ошибками памяти (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.

Ответ 14

В 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.