web-dev-qa-db-fra.com

Est-ce que APC est compatible avec PHP 5.4 ou PHP 5,5?

Il ne semble pas qu'APC ait été mis à jour pour coïncider avec la version 5.4 de PHP (j'espère qu'ils auraient inclus APC dans le noyau PHP comme prévu à l'origine). 

Je n'arrive pas à trouver de réponse définitive à la question de savoir si APC fonctionne avec PHP 5.4+. J'ai réussi à trouver des paquets Ubuntu pour PHP 5.4, mais les paquets php-apc ne seront pas installés. 

102
Greywire

Zend OPCache inclus dans PHP 5.5

Le 21 mars 2013, PHP 5.5 beta 1 est sorti, y compris "Zend OPCache" - Il semble que ce sera le remplacement pour APC, car il est inclus dans le PHP core, et sera doit être maintenu pour chaque nouvelle version.

Je conseillerais personnellement à ceux qui dépendent d’APC pour sa mise en cache opcode de tester leur code avec le futur cache opcode intégré et de faire le point sur tous les problèmes rencontrés afin d’assurer une version finale stable.

Je ne sais pas ce que cela signifie pour l'avenir d'APC.

APC POUR PHP 5.4+ IS TOUJOURS DIFFUSÉ COMME BETA

Cela signifie que les développeurs font pas le considèrent complètement stable. Bien que de nombreuses personnes ne rencontrent aucun problème avec les versions actuelles de SVN, il existe toujours un rapport étrange de cas Edge provenant de personnes sous certaines configurations ou sous une charge importante.

Comme pour tout ce que vous souhaitez utiliser dans un environnement de production, assurez-vous de bien tester toutes les versions (bêta ou stables) dans des environnements de développement ou de pré-production first. Cela inclut les tests de charge!

À partir de la version 3.1.13, les validations dans le référentiel SVN ont été quelque peu ralenties et la liste de bogues liste des bogues ne comporte pas beaucoup d'ajouts récents. Fais-en ce que tu veux.

Le ​​10 décembre 2012 à 21h05, Rasmus Lerdorf a écrit:

APC en est au stade 5.4 et je ne pense pas qu'il y ait plus de cas Edge que nous en avons au 5.3. Ni est parfait, mais il est assez proche pour la majorité des sites.

Toute personne ayant des compétences en C/gdb et un peu de temps libre est instamment priée de passer sous silence liste de bogues et de voir s’ils peuvent réparer quoi que ce soit, ou l’améliorer produit libre open source compter sur.

Des solutions alternatives existent, Wikipedia fournit un liste d'accélérateurs PHP .

Le 13 février 2013, Zeev Suraski a annoncé la disponibilité du code source Zend Optimizer + .

Il y a eu pas mal de longue discussion sur l'intégration de Zend Optimizer + dans le noyau PHP de base dans la prochaine version majeure (la version ultérieure à 5.5). Les personnes qui souhaitent se familiariser avec Zend Optimizer + doivent le faire à l’avance.


Ne pas utiliser APC 3.1.14

APC 3.1.14 a été supprimé de PECL téléchargements en raison de graves problèmes de mémoire découverts mais non encore détectés.

Si vous utilisez déjà la version 3.1.14, vous pouvez souhaiter rétrograder jusqu'à ce que la version 3.1.15 soit publiée. Rappelez-vous que c'est toujours beta. Si vous l'utilisez, vous l'utilisez à vos risques et périls.

2013-01-02 :
APC 3.1.14 est disponible, ajout de PHP 5.5 compatibilité, en plus de la résolution d'un bon nombre d'autres bugs .

Toujours beta


2012-09-03 :
APC 3.1.1 est disponible, fixant un nombre de segfaults .


2012-08-16 :
Un APC 3.1.12 tag a été créé, mais est toujours marqué beta, il est disponible sur le page APC PECL , ainsi que le changelog .

Beaucoup de bogues liés à bin_dump ont été corrigés cette fois-ci.


2012-07-19 :
Un balise APC 3.1.11 a été créé, mais est toujours marqué beta, il est disponible sur le page APC PECL , ainsi que le changelog . Je suis les listes de diffusion pertinentes et elles travaillent toujours activement à la correction des bogues APC, mais il s’agit d’un module complexe et peu de personnes semblent être à la hauteur de la tâche. Cette version corrige les méchants stat = 0 bugs lors de l’inclusion de fichiers.


2012-04-11 :
Une APC 3.1.10 tag a été créée aujourd'hui et une version bêta de 3.1.10 a été placée sur le page APC PECL

Le changelog indique:

  • Ajouter PHP 5.4 support (Dmitry, Anatoliy, Pierre)
  • Correction du bug # 22679: Correction de apc_bin_dump pour les constantes. Utilisez IS_CONSTANT_TYPE_MASK pour gérer toutes les constantes, y compris celles non qualifiées (au lieu de la vérification ~ IS_CONSTANT_INDEX)
  • Correction du bug # 23822, php plante au redémarrage d'Apache
163
Leigh

À partir de PHP 5.4.7 et d'APC 3.1.13 (et même du tronc APC SVN du 2012-09-19), bien qu'il soit "compatible", il n'est pas stable sur les serveurs très chargés Utilisez PHP-FPM et $ GLOBALS. Certaines discussions de développeurs sur APC parlent de cas marginaux non résolus .

Je réponds à cette question six mois après avoir été posée, car le problème est toujours d'actualité. Ce fil sans réponse comme celle-ci m'a fait faire le saut vers PHP 5.4 avec APC et me brûler . Espérons que cela aidera les gens à éviter certaines douleurs.

10
Eric Caron

Il semble que le bogue "peut-être" ait été corrigé dans la dernière révision du coffre. Je travaille maintenant avec PHP 5.4.0.

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

cd apc-trunk

phpize

./configurer

make

faire installer

6
Simon

Eh bien, j'essaie depuis quelques jours, et il n’ya aucun moyen de faire fonctionner un opcode cacher avec PHP 5.4. Xcache ne compilera pas et apc ne reconnaîtra pas certaines classes lorsqu’il est mis en cache ... Je pense que c’est l’erreur dont parle Simon.

J'ai entendu dire qu'il y avait des correctifs dans le coffre, mais j'ai aussi essayé les dernières sources de coffre, mais les mêmes erreurs reviennent sans cesse… .. Je pense que php sans cache d'opcode (il n'y en a pas actuellement) ne vaut pas la production Espérons que les gens chez Apc vont régler ce problème dès que possible.

METTRE À JOUR!!!

Xcache 2.0.0-rc1 est sorti et compatible avec PHP 5.4. Prendre plaisir!

5
Michiel Thalen

Non, APC 1.3.9 (et à partir de ce moment, même le tronc svn) n’est pas compatible avec php 5.4.0, je le sais parce que je viens de passer des heures à le faire fonctionner (testé divers svn/php. paramètres ini/drapeaux du compilateur/vous le nommez).

C’est ridicule, APC est l’une des extensions les plus populaires de PHP et on s’attend à ce qu’après avoir passé huit semaines PHP 5.4 RC, ils aient le temps de travailler avec APC. .

Pathétique.

5
JohnSmith

J'utilise AMPPS avec PHP version 5.5.19. Depuis quelque temps, exactement à partir de la sortie de PHP 5.5 - APC est remplacé par Zend OPCache, inclus dans les versions PHP 5.5 et supérieures. Maintenant, tout ce que vous avez à faire pour activer "APC" (actuellement "OPcache") est de modifier votre php.ini. Avant la section [XDebug], ajoutez les lignes suivantes:

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

...

Veuillez noter que nous devons avoir deux instances de: 

zend_extension =

Un dans [OPcache] et un dans la section [XDebug]. Xdebug n’est souvent pas fourni par défaut dans l’installation du serveur xampp/ampps/easyPHP. Vous pourriez vous retrouver dans une situation où vous devrez télécharger l'extension Xdebug. Vous pouvez le faire facilement en utilisant une application en ligne qui définit le bon Xdebug pour votre php. Visitez http://xdebug.org/wizard.php et suivez leurs instructions simples. Une fois que vous avez téléchargé la bonne version de Xdebug pour votre version php - éditez le lien de votre zend_extension dans la section [XDebug].

...

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

Notez s'il vous plaît! que vous devez ajouter la section OPcache avant XDebug dans votre fichier php.ini !!! Si vous me suivez correctement, vous devriez avoir deux instances de zend_extension dans votre fichier php.ini (une dans OPcache et une dans la section Xdebug).

Cela fonctionne parfaitement pour le framework Symfony2 et élimine le message de recommandation pour installer et activer APC pour votre PHP et Xdebug.

Message à ceux qui exécutent symfony 2 et qui ont supprimé le message d'avertissement de "web/config.php", mais qui rencontrent toujours un problème en exécutant depuis la ligne de commande "php app/check.php" Si cela se produit, cela signifie que votre console utilise un fichier php.ini différent. Changez votre variable système PATH - faites-la pointer vers le bon répertoire php (où se trouve votre fichier php.exe et qui est utilisé par votre serveur local).

Si vous avez besoin d'explications plus profondes, faites-le moi savoir dans le commentaire ci-dessous. Cordialement.

4
DevWL

J'ai trouvé apcu http://windows.php.net/downloads/pecl/releases/apcu/

Peut-être que c'est apc pour x64 sur Windows. Cela (version 4.0.1) a fonctionné sur mon application.

4
StXh

J'ai constaté qu'il fallait vider le cache d'opcode à chaque demande de page, faute de quoi les classes implémentant des interfaces échouent. Ceci a été compilé à partir du dernier coffre svn, Apache 2.4.1, PHP 5.4.0.

3
Simon

Il semble y avoir encore des problèmes à résoudre. Découvrez les bogues et vous pourrez peut-être trouver la solution à votre problème particulier.

Il y a quelques heures, j'ai eu affaire à une erreur de ce type et il s'est avéré que l'utilisation d'APC depuis le tronc SVN était la solution. J'espère que cela t'aides!

3
Roberto

APC - non recommandé
Personnellement, je n’ai pas utilisé APC avec PHP 5.4 ou PHP 5.5, mais le dernier APC stable n’est pas compatible avec PHP 5.4, la dernière version bêta APC peut être utilisée avec 5.4 est écrit qui ont toujours des problèmes négatifs avec APC.

Si vous avez PHP 5.5
utilisez simplement Zend Opcache . C'est hors de la boîte, donc les problèmes sont minimes.

Si vous avez PHP 5.4
Je recommande XCache . Il est entièrement compatible avec PHP 5.4 et 5.5. Activement développé. La dernière version stable a été publiée il y a trois mois et demi (le 10 octobre 2013). Cela améliore les performances même si vous utilisez fastcgi.

2
trante

Zend OPCache est inclus dans PHP 5.5 sous le nom php_opcache.dll dans le répertoire php/ext. Pour l'activer:

  • Ajoutez le fichier php_opcahe.dll en tant qu’extension zend dans votre fichier de configuration php.ini
  • Utilisez le format zend_extension = chemin/vers/php/ext/php_opcache.dll.
  • Placez le zend_extension avant le xDebug zend_extension dans votre config php.ini.
  • Enregistrez votre fichier de configuration php.ini et redémarrez votre serveur.
1
ROOT

Nous expérimentons des erreurs de mémoire (Apache segfault) avec PHP 5.4.26 et APC 3.1.9 . Un bogue est ouvert pour APC sur PHP 5.4.X: https: // bugs.php.net/bug.php?id=61934

Je recommande de ne pas utiliser ce plugin sur PHP> 5.3.

0
dAm2K

Dans XAMPP version 5.6.3 (PHP 5.6.3), tout ce que vous avez à faire dans votre ini.php est le suivant:

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

Configuration pour le framework symfony2.

0
DevWL

APC a une nouvelle version: 3.1.14 depuis le 2 janvier, qui résout quelques bugs: http://pecl.php.net/package/APC

Cependant, j’ai exécuté PHP 5.4.x avec APC 3.1.13 à partir du référentiel dotdeb sans aucun problème jusqu’à présent, donc je dirais que c’est stable. dotdeb m'a également informé qu'il inclurait la version mise à jour de l'APC dans la prochaine version de PHP, qui devrait être la 5.4.11.

0
Steven De Groote