¿APC es compatible con PHP 5.4 o PHP 5.5?


No parece que APC haya sido actualizado para coincidir con la versión php 5.4 (ojalá hubieran incluido a APC en el núcleo de PHP como estaba previsto originalmente).

No puedo encontrar ninguna respuesta definitiva a si APC actual funciona con php 5.4+. Me las arreglé para encontrar paquetes de Ubuntu para php 5.4, pero los paquetes php-apc no se instalarán.

Author: Philzen, 2012-03-08

14 answers

Zend OPcache incluido en PHP 5.5

El 21 de marzo de 2013, el PHP 5.5 beta 1 fue lanzado incluyendo "Zend OPcache" - Parece firmemente que este será el reemplazo para APC en el futuro, ya que está incluido en el núcleo de PHP, y tendrá que ser mantenido para cada nueva versión.

Personalmente aconsejaría a aquellos que dependen de APC para su almacenamiento en caché de opcode que prueben su código con la próxima caché de opcode incorporada, y retroalimenten cualquier problema encontrado para asegurar una liberación final estable.

No sé lo que esto significa para el futuro de APC.

APC PARA PHP 5.4 + SIGUE MARCADO COMO BETA

Esto significa que los desarrolladores lo consideran no completamente estable. Si bien muchas personas no están experimentando problemas en absoluto con las versiones actuales de SVN, todavía hay un informe extraño de casos perimetrales de personas bajo ciertas configuraciones o bajo carga pesada.

Al igual que con todo lo que desea utilizar en un entorno de producción, asegúrese de probar a fondo cualquier versión (beta o estable) en entornos de desarrollo o preproducción primero. Esto incluye pruebas de carga!

A partir de la versión 3.1.13, las confirmaciones en el repositorio SVN se han ralentizado un poco y la lista de errores no tiene tantas adiciones recientes. Haz de eso lo que quieras.

El 10 de diciembre de 2012 a las 21:05, Rasmus Lerdorf escribió:

APC está en el punto ahora para 5.4 donde no creo que haya más casos extremos de los que tenemos en 5.3. Ninguno es perfecto, pero está lo suficientemente cerca para la mayoría de los sitios.

Cualquier persona con habilidades de C / gdb y algo de tiempo libre debe pasar por alto la lista de errores y ver si puede arreglar algo, o mejorar este producto de código abierto libre en el que todos confiamos.

Existen soluciones alternativas, Wikipedia proporciona una lista de aceleradores de PHP.

El 13 de febrero 2013, Zeev Suraski anunció la disponibilidad del Zend Optimizer+ código fuente .

Ha habido bastante una larga discusión sobre la integración de Zend Optimizer+ en el núcleo de PHP en la próxima versión principal (la versión posterior a la 5.5). Es posible que la gente desee familiarizarse con Zend Optimizer+ por adelantado, si este es el caso.


No use APC 3.1.14

APC 3.1.14 se ha eliminado de las descargas de PECL debido a algunos graves problemas de memoria que han sido descubiertos pero aún no han sido rastreados.

Si ya está usando 3.1.14, es posible que desee bajar de categoría hasta que se libere 3.1.15. Recuerda, esto sigue siendo beta . Si lo está usando, lo está usando bajo su propio riesgo.

2013-01-02:
APC 3.1.14 está disponible, añadiendo compatibilidad con PHP 5.5, además de resolver un buen número de otros bugs.

Todavía beta


2012-09-03:
APC 3.1.13 está disponible, la fijación de un número de segfaults.


2012-08-16:
Se ha creado una etiqueta APC 3.1.12, pero todavía está marcada como beta, está disponible en la página de APC PECL, así como en el registro de cambios .

Se corrigieron muchos errores relacionados con bin_dump esta vez alrededor.


2012-07-19:
Se ha creado una etiqueta APC 3.1.11, pero todavía está marcada como beta, está disponible en la página de APC PECL, así como en el registro de cambios . He estado siguiendo las listas de correo relevantes, y todavía están trabajando activamente en la corrección de errores de APC, sin embargo, es un módulo complejo y no mucha gente parece estar a la altura de la tarea. Esta versión corrige los errores desagradables stat=0 al incluir file.


2012-04-11:
Hoy se creó una etiqueta APC 3.1.10 , y se colocó una versión beta de 3.1.10 en la página de APC PECL

El registro de cambios establece:

  • Añadir soporte para PHP 5.4 (Dmitry, Anatoliy, Pierre)
  • Solucionado el bug # 22679: Solucionado apc_bin_dump para constantes. Use IS_CONSTANT_TYPE_MASK para manejar todas las constantes, incluidas las no calificadas (en su lugar de ~IS_CONSTANT_INDEX check)
  • Solucionado el bug # 23822, php se bloquea al reiniciar apache
 162
Author: Leigh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-21 13:21:50

A partir de PHP 5.4.7 y APC 3.1.13 (e incluso APC SVN trunk a partir de 2012-09-19), aunque es "compatible" no es estable en servidores con carga pesada, particularmente si está utilizando PHP-FPM y GLOB GLOBALS. Algunas de las discusiones de desarrolladores en APC hablan de casos marginales no resueltos .

Estoy respondiendo a esta pregunta 6 meses después de que se hizo porque el problema sigue siendo frecuente, y encontrar este hilo sin una respuesta como la mía es lo que me hizo dar el salto a PHP 5.4 w/ APC y se queman. Esperemos que esto ayude a las personas a evitar algo de dolor.

 10
Author: Eric Caron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-21 14:49:37

Parece que el bug "puede" haber sido corregido en la última revisión del trunk. Lo tengo trabajando ahora con PHP 5.4.0.

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

Cd apc-trunk

Phpize

./ configure

Make

Make install

 6
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-12 23:17:41

No, APC 1.3.9 (y a partir de este momento, incluso el tronco svn) no es compatible con php 5.4.0, lo sé porque he pasado horas tratando de que funcione (probado varios svn/php.configuración de ini / banderas del compilador / lo nombras).

Esto es ridículo, APC es una de las extensiones PHP más populares y es de esperar que después de semanas de pasar por 8 PHP 5.4 RC's tengan tiempo de hacer que APC trabaje junto a él.

Patético.

 5
Author: JohnSmith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-10 02:19:16

Bueno, lo estoy intentando durante los últimos días, y no hay manera de que pueda conseguir un cacher de opcode para trabajar con php 5.4. Xcache no compilará, y apc no reconocerá ciertas clases cuando se almacenen en caché. Creo que este es el error del que habla Simon.

Escuché que había algunas correcciones en el tronco, pero también probé las últimas fuentes del tronco, pero los mismos errores siguen regresando. Creo que php sin un cacher de opcode (no hay ninguno disponible en este momento) no es digno de producción. Esperanza de la gente en apc arreglará esto lo antes posible.

ACTUALIZAR!!!

Xcache 2.0.0-rc1 está fuera y es compatible con php 5.4. ¡Que lo disfrutes!

 5
Author: Michiel Thalen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-30 14:54:50

Encontré apcu http://windows.php.net/downloads/pecl/releases/apcu /

Tal vez esto es apc para x64 en Windows. Ella (versión 4.0.1) funcionó en mi aplicación.

 4
Author: StXh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-14 03:26:44

Estoy usando AMPPS con PHP Versión 5.5.19. Desde hace algún tiempo exactamente desde la liberación de PHP 5.5-APC es sustituido por Zend OPcache, que es incluido en PHP 5.5 y arriba. Ahora todo lo que tiene que hacer para habilitar "APC" (actualmente "OPcache") es editar su php.ini. Antes de la sección [XDebug] agregue las líneas que fluyen:

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

...

Tenga en cuenta que necesitamos tener dos instancias a:

zend_extension =

Uno en [OPcache] y uno en la sección [XDebug]. Xdebug a menudo no se proporciona como predeterminado en la instalación del servidor xampp/ampps/EasyPHP. Es posible que se encuentre en una situación en la que tendrá que descargar la extensión Xdebug. Puede hacer esto fácilmente mediante el uso de una aplicación en línea que define el Xdebug adecuado para su php. Visita http://xdebug.org/wizard.php y seguir sus sencillas instrucciones. Una vez que haya descargado la versión correcta de Xdebug para su versión de php - editar el enlace de su zend_extension en la sección [XDebug].

...

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

Tenga en cuenta! que tienes que añadir la sección OPcache antes de XDebug en tu php.archivo ini!!! Si me sigues correctamente deberías tener dos instancias de zend_extension en tu php.archivo ini (uno en OPcache y otro en la sección Xdebug).

Esto funciona perfectamente para Symfony2 framework, y elimina el mensaje de recomendación para instalar y habilitar APC para su PHP y Xdebug.

Mensaje a aquellos que ejecutan symfony 2 y eliminaron mensaje de advertencia de " web / config.php", pero aún encuentra un problema al ejecutar desde la línea de comandos "php app / check.php". Si esto sucede, significa que su consola está usando un php diferente.archivo ini. Cambie la ruta de su sistema varible-haga que apunte al directorio php correcto (donde tiene su php.archivo exe y que es utilizado por su servidor local).

Si necesita una explicación más profunda, hágamelo saber en el comentario a continuación. Respecto.

 4
Author: DevWL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-31 17:34:31

Parece que hay algunos problemas aún por resolver. Echa un vistazo a los errores y es posible que puedas averiguar cuál es la solución a tu problema particular.

Lidié con uno de esos errores hace unas horas, y resultó que usar APC desde el tronco SVN era el camino a seguir. Espero que esto ayude!

 3
Author: Roberto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-08 06:35:19

He encontrado que necesita borrar la caché de opcode en cada solicitud de página, de lo contrario, las clases que implementan interfaces no se cargan. Esto fue compilado desde el último tronco svn, Apache 2.4.1, PHP 5.4.0.

 3
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-09 00:09:47

APC-no recomendado
Personalmente no usé APC con PHP 5.4 o PHP 5.5, pero la última versión estable de APC no es compatible con PHP 5.4, la última versión beta de APC se puede usar con 5.4 pero está escrito que todavía tiene problemas negativos con APC.

Si tiene PHP 5.5
simplemente use Zend Opcache. Está fuera de la caja, por lo que los problemas son mínimos.

Si tiene PHP 5.4
Recomiendo XCache. Es totalmente compatible con PHP 5.4 y 5.5. Desarrollado activamente. La última versión estable fue lanzada hace 3.5 meses (10 de octubre de 2013). Mejora el rendimiento incluso si utiliza fastcgi.

 2
Author: trante,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-23 17:12:50

Zend OPcache está incluido en PHP 5.5 bajo el nombre php_opcache.dll en el directorio php/ext . Para activarlo:

  • Añade el php_opcahe.archivo dll como una extensión zend en su php.archivo de configuración ini.
  • Use el formato zend_extension = path/to/php/ext/php_opcache.dll.
  • Coloque el zend_extension antes del xDebug zend_extensionen su php.ini config .
  • Guarde su php.ini archivo de configuración y reinicie su servidor.
 1
Author: ROOT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-12 17:20:35

APC tiene una nueva versión: 3.1.14 desde el 2 de enero, que resuelve algunos errores: http://pecl.php.net/package/APC

Sin embargo, he estado ejecutando PHP 5.4.x con APC 3.1.13 del repositorio dotdeb sin ningún problema hasta ahora, así que para mí diría que es estable. dotdeb también me ha informado que incluirán la actualización de APC en la próxima versión de PHP, que se espera sea 5.4.11.

 0
Author: Steven De Groote,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-05 07:04:05

Estamos experimentando errores sin memoria (apache segfault) con PHP 5.4.26 y APC 3.1.9. Hay un error abierto para APC en PHP 5.4.X: https://bugs.php.net/bug.php?id=61934

Recomiendo no usar este plugin en PHP > 5.3.

 0
Author: dAm2K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-06 10:28:14

En XAMPP Versión 5.6.3 (PHP 5.6.3) todo lo que tienes que hacer en tu ini.php es esto:

[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"

Configuración para el framework symfony2.

 0
Author: DevWL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-16 20:48:37