APC und PHP - Unterbrochene Sites aufgrund von Cache-Mixing

8

Ich hoffe, dass mir jemand helfen kann, das herauszufinden. Ich habe APC kürzlich auf einigen meiner Server ausgeführt, die nur eine Anwendung hosten, und es hat großartig funktioniert. Leider habe ich es heute Abend auf meinem Arbeitshorse-Webserver laufen lassen und sobald ich es angeschaltet habe, habe ich begonnen, von meinen WordPress-Blogs zu "mischen". Der erste Blog, der geladen wurde, würde Datenbankinformationen zwischenspeichern und dann würde jedes später geladene Blog einen Datenbankfehler bekommen.

Was ich wissen möchte, ist, ob es eine Möglichkeit gibt, den Cache irgendwie voranzutreiben , damit ich dieses Problem vermeiden kann. I angenommen , dass der Cache die Unterschiede in der absoluten Pfadangabe zwischen den Dateien berücksichtigt und nicht die gleiche zwischengespeicherte Kopie an mehreren Standorten verwendet ... FAIL

Vielen Dank im Voraus!

Aktualisieren

Wie hier verlangt, ist eine Kopie der apc.ini-Datei, die ich in /etc/php.d/ verwende, um die Standardeinstellungen zu überschreiben:

/etc/php.d/apc.ini

%Vor%     
Shane 17.04.2011, 05:21
quelle

7 Antworten

6

Soweit ich weiß, können Sie keine globalen Einstellungen verwenden, um Präfix für verschiedene Anwendungen zu setzen. Sie könnten Ihre Schlüsselnamen ändern und den Namen Präfixe hinzufügen. Wenn Sie erfahrener sind, können Sie zwei verschiedene Instanzen von PHP mit fastcgi verwenden, je nachdem, welchen HTTP-Server Sie verwenden. Wir machen sowas mit APC und ngix:)

    
kkszysiu 11.05.2011, 17:44
quelle
4

Haben Sie versucht, apc.file_md5 auf% zu setzen? Code%? Andere Richtlinien, die einen Unterschied machen könnten:

  • On (Wenn diese Option aktiviert ist, werden die relativen Pfade in Nr -stat-Modus.)
  • apc.canonicalize (Keine Ahnung, wirklich ...)

Abhängig von Ihrem Ziel glaube ich, dass entweder apc.preload_path oder apc.file_md5 helfen.

    
Alix Axel 12.05.2011 03:54
quelle
2

Fügt Wordpress die Cache-Einträge hinzu, um DB-Anfragen zu speichern? Wenn dies der Fall ist, müssen Sie die Cache-Bibliotheksdatei so bearbeiten, dass sie ein Präfix enthält.

Ich vermute, dass Sie ein Wordpress-Plugin verwenden? Wenn ja, welches Plugin?

    
instigator 13.05.2011 20:58
quelle
2

Wenn Sie das Doctrine-ORM verwenden und APC-Caching aktiviert haben, ohne ein Präfix anzugeben, kann dies zu Problemen führen.

In meinem Fall führte die Verwendung des Symfony-Frameworks und die blinde Befolgung der Anleitung in Ссылка zum Mischen des APC-Caches.

Vielen Dank an die Jungs von Apostrope Ссылка es scheint, dass Sie a angeben müssen eindeutiges Präfix zum Doctrine-Cache.

/config/ProjectConfiguration.class.php

%Vor%     
Peter Hough 05.09.2011 10:11
quelle
1

Haben Sie das Speichermapping bereits ausprobiert? Es scheint (ich werde es versuchen!) Es sollte gut funktionieren und mit php-fpm und den Pools können Sie verschiedene Konten mit verschiedenen Caches haben ...!
Hier ist ein Link, der Sie interessieren könnte: Ссылка :)

    
Alessio Periloso 27.06.2012 16:58
quelle
0

Ich habe ein Modul, das Ihnen helfen kann: Ссылка Dort können Sie Präfixe, Tags für Schlüssel und andere Vorteile verwenden.
Und Sie können den Cache-Speicher (APC, Memcache, shm-memory) ändern, ohne Ihren Code zu ändern (eine Schnittstelle für alle Speicher).

edit: Es ist für den Cache des Benutzers gedacht, also wird es Ihr Problem nicht beheben. Du hast es zu spät erwähnt:)

    
OZ_ 13.05.2011 22:44
quelle
0

Ich musste mich nur mit diesem Problem befassen. Ich fügte die folgenden apc params hinzu

%Vor%

Nicht sicher, ob das geholfen hat oder die Variable, die ich der Datei hinzugefügt habe. In meinem Fall jedoch verwirrte es Dateien unter einem Webstamm, der zufällig in verschiedenen Pfaden existiert, denselben Namen und denselben "Header" hat.

    
Ahmad 09.05.2013 18:36
quelle

Tags und Links