APC actif en php

J’ai installé APC PHP sur mon serveur. PHPinfo le montre. Mais juste une question car je suis un peu confus …

Est-ce que les nouvelles requêtes PHP envoyées au serveur commenceront automatiquement à utiliser APC ou faut-il également modifier les codes PHP pour utiliser APC? Pouvez-vous s’il vous plaît fournir des indices.

Merci

Si apc est présent, il sera utilisé. À moins que la valeur par défaut de apc.enabled soit False, vérifiez-la dans le fichier phpinfo.

Si les parameters activés sont OK, la première utilisation d’APC sera l’opcode. Stocker une version “compilée” de vos scripts PHP. Maintenant, ce comportement peut être grandement amélioré en activant plusieurs parameters d’APC (comme éviter de vérifier les modifications du code source à chaque access au fichier).

Il y a aussi une deuxième grande fonctionnalité dans APC qui l’utilise comme un stockage persitence / cacche pour votre application. Mais ces choses nécessitent des instructions d’application spécifiques dans votre application, comme si vous utilisiez une firebase database. Vérifiez ces fonctions .

Pour vraiment activer les optimisations APC, vous devez regarder tous les parameters APC. apc.shm_size et apc.shm_segments sont les plus utiles pour vérifier les parameters de la taille de la mémoire APC et sont partagés pour tous les virtulahosts. Mais après ces principes de base, voici quelques éléments à vérifier pour virtualhost / application (où vous utiliseriez les instructions php_value) – ou dans le fichier php.ini–, il s’agit d’un extrait d’une configuration de production:

Notez que vous devez comprendre chaque paramètre activé et lire la documentation , sinon vous finirez par perdre des heures de développement car vos modifications de code source ne seront pas lues par php

 # Activate apc apc.enabled =1 # Optimisation of include/require_once calls apc.include_once_override =1 # transform paths in absolute ones (no effect if apc.stat is not 0), # files from stream wrappers (extended includes) # won't be cached if this is activated as they cannot be used with php's realpath() apc.canonicalize =1 # In production set it to 0, then file changes won't be observed before # apache is restarted, # significant boost, else file time is stated at each access (needed at 1 in dev) apc.stat =0 # avoid problems with rsync or svn not modifying mtime but only ctime # so if you're in production set this to 0, like for the previous one apc.stat_ctime =0 # deprecated option: apc.optimization not available anymore # apc.optimization =0 # inform apc on number of files of the application apc.num_files_hint =2000 # inform apc on the number of cache variables apc.user_ensortinges_hint =100 # cache lifetime managmenent ---------------- # time (s) we can stay on the cache even when the cache is full -- Cache full count -- # that means Garbage Collector is never inactivating theses datas before this time is over # >0 -> old data could stay in the cache while new data want's to come, if no data is deprecated # 7200 -> ensortinges older than 2 hours will be thrown to make some place # 0 -> emptying full cache when full apc.ttl =0 apc.user_ttl =0 # this one is the same but you should note this this prevent Garbage collecting # after each source change. apc.gc_ttl =0 # What to cache ? ---------------------------- # could be used to prevent some caching on specific files # but it's better to cache often used files, isn't it? at least in production #apc.filters ="-config.php-.ini" # default to 1M, files bigger than that won't be cached apc.max_file_size ="5M" # various things ------------------------------- # only one process caching a same file (beter than apc.slam_defense) php_fla apc.write_lock =1 # prevents caching half written files (by cp for example) by waiting x seconds # for new files caching. set it to 0 if using only rsync or mv apc.file_update_protection =2 # newest versions of APC only # adding a lazy loading capabilities, so you can parse a lot of files # and only used things are cached #apc.lazy_functions =1 #apc.lazy_classes =1 

PHP l’utilisera automatiquement. Vous n’avez pas du tout besoin de changer votre code pour utiliser un accélérateur de mise en cache.

APC fonctionne automatiquement. Le module exécute votre code et le convertit en bytecode. Lorsque vous appelez à nouveau votre script, votre serveur Web n’exécute plus le script au lieu d’exécuter le bytecode.

Si vous avez beaucoup de trafic, vous économiserez beaucoup de performances.

La deuxième fonction est que vous pouvez enregistrer des valeurs dans la mémoire partagée d’APC si vous le souhaitez. Pour cela, vous devez lire la documentation.

http://php.net/manual/de/book.apc.php