7
votes

apc.filters par chemin?

Comment utiliserai-je le paramètre APC.Filters dans la mise en cache d'opcode APC pour ne pas mettre en cache certains chemins? Par exemple, je veux que la mise en cache soit active pour quelque chose sous le chemin:

"/ var / www / vhosts"

et exclude des chemins tels que

"/ USR / Share / psa-horde / "

J'ai essayé d'utiliser xxx

et xxx

mais non plus Je m'attendais.

http: / /www.php.net/manual/fr/apc.configuration.php#ini.apc.filters

Si le filtre doit être quelque chose de plus comme "+ / var / www / vhosts / * "(Notez le caractère générique)? J'ai bien peur que ce n'était pas possible à cause de la façon dont les filtres fonctionnent:

Notez que le nom de fichier utilisé pour correspondant est celui qui est passé à inclure / besoin, pas l'absolu chemin.

des idées ou des configurations d'échantillons?


0 commentaires

5 Réponses :


6
votes

Le filtre doit être une liste séparée des virgules des expressions régulières étendues de POSIX. Je crois ce que vous avez dans la deuxième tentative ne correspond que le chemin exact / USR / Share / PSA-Horde /, et non / USR / Share / PSA-Horde / quelque chose ou /ReR/Share/psa-horde/anotherfile.php < p> Les éléments suivants doivent correspondre à tout problème dans le sous-dossier xxx


4 commentaires

Hmm, bon appel, mais je pense que cela ne fonctionne que pour le nom de fichier si le chemin complet a été utilisé dans l'instruction requis: "Notez que le nom de fichier utilisé pour la correspondance est celui qui est passé pour inclure / besoin, pas le chemin absolu."


par exemple. Essayé "- / var / www / vhosts / myhostname.com / svn / public / openx /.*" et les fichiers de ce répertoire sont toujours en cours de cache.


"Notez que le nom de fichier utilisé pour la correspondance est celui qui est passé à inclure / besoin, pas le chemin absolu." - de docs


Je ne comprends pas cette phrase exacte .. Quel chemin devrait-il utiliser au lieu de "- / var / www / vhosts / myhostname.com / svn / public / openx /.*"?



5
votes

Une réponse très tardive, mais au cas où quelqu'un d'autre ait cette question (je vais deviner que vous devriez être / dirigé une boîte à Plesk, c'est pourquoi je suis tombé sur ceci).

Votre meilleur pari est d'avoir APC dans la liste des modules PHP chargés, mais avoir apc.enabled 0 dans le maître php.ini. Ensuite, pour chaque Vhost, vous souhaitez l'avoir activé pour, ajouter php_admin_value APC.Enabled 1 pour activer pour chacun. Pourrait être un problème si vous avez une tonne de sites, mais travaille pour quelques-uns quelques-uns.


0 commentaires

0
votes

Puisque APC.FILTERS fonctionne avec des expressions régulières, WildCard Chemier doit être spécifié comme APC.FILTERS = "- / USR / Share / PSA-Hordique /.*"


0 commentaires

2
votes

la solution de Pnomolos fonctionne si vous avez des vhosts différents, mais cela ne fonctionnera pas si vous n'en avez qu'un seul et souhaitez contrôler la mise en cache de manière véridique par répertoire.

Ce rapport de bogue pointe sur la meilleure solution: https: //bugs.php. net / bug.php? id = 57064

Activer APC et définir apc.cache_by_default à 0 dans php.ini . Dans votre configuration Apache, vous pouvez ensuite utiliser php_admin_setting APC.Cache_by_default 1 à l'intérieur d'un répertoire pour activer la mise en cache APC exactement où vous en avez besoin.


0 commentaires

0
votes

utilisé: xxx


0 commentaires