8

誰かがこれを理解するために手を貸してくれることを願っています。私は最近、アプリケーションを 1 つだけホストするいくつかのサーバーで APC を実行しており、うまく機能しています。残念ながら、今夜、主力の Web サーバーで実行しようとしましたが、電源を入れるとすぐに、WordPress ブログから「ミキシング」が始まりました。最初に読み込まれたブログはデータベース情報をキャッシュし、後で読み込まれたすべてのブログでデータベース エラーが発生します。

私が知りたいのは、この問題を回避できるように、何らかの方法でキャッシュにプレフィックスを付ける方法があるかどうかです。キャッシュはファイル間の絶対パスの違いを尊重し、複数のサイトで同じキャッシュされたコピーを使用しないと想定しました...失敗

前もって感謝します!

アップデート

ここで要求されているのは、デフォルト設定を上書きするために /etc/php.d/ で使用する apc.ini ファイルのコピーです。

/etc/php.d/apc.ini

extension=apc.so
apc.shm_size                    = 64M
apc.max_file_size               = 8M
apc.include_once_override       = 1
apc.stat_ctime                  = 1
4

7 に答える 7

6

私の知る限り、グローバル設定を使用してさまざまなアプリケーションのプレフィックスを設定することはできません。キー名を変更して、その名前にプレフィックスを追加できます。より熟練している場合は、使用している http サーバーに応じて、fastcgi を使用して 2 つの異なる php インスタンスを使用できます。私たちはAPCとngixを使ってそのようなことをしています:)

于 2011-05-11T17:44:34.100 に答える
4

に設定apc.file_md5してみましたOnか?違いを生む可能性のあるその他のディレクティブ:

目的に応じて、またはいずれapc.file_md5apc.canonicalizeが役立つと思います。

于 2011-05-12T03:54:51.880 に答える
2

wordpress は DB リクエストを保存するためにキャッシュ エントリを追加していますか? その場合は、キャッシュ ライブラリ ファイルを編集してプレフィックスを含める必要があります。

wordpressプラグインを使用していると思いますか?もしそうなら、どのプラグインですか?

于 2011-05-13T20:58:34.360 に答える
2

Doctrine ORM を使用していて、プレフィックスを指定せずに APC キャッシングを有効にしている場合、問題が発生する可能性があります。

私の場合、Symfony フレームワークを使用し、http: //symfony-check.org/ のガイドにやみくもに従っていると、APC キャッシュの混合が発生しました。

Apostrope Now https://groups.google.com/d/msg/apostrophenow/1Z79wc4wjQk/6Vi2jLjP-twJの皆さんに感謝します。Doctrine キャッシュに一意のプレフィックスを指定する必要があるようです。

/config/ProjectConfiguration.class.php

public function configureDoctrine(Doctrine_Manager $manager)
{
  $manager->setAttribute(Doctrine::ATTR_QUERY_CACHE, new Doctrine_Cache_Apc(array('prefix' => 'something_unique'));
}
于 2011-09-05T10:11:01.070 に答える
1

すでにメモリ マッピングを試しましたか? どうやら (試してみます!) 正常に動作し、php-fpm とプールを使用すると、異なるキャッシュを持つ異なるアカウントを持つことができます...!
興味のあるリンクは次のとおりです: http://ravirajsblog.blogspot.it/2012/02/php-apc-locking-mechanism.html :)

于 2012-06-27T16:58:14.213 に答える
0

私はあなたを助けることができるモジュールを持っています: http://github.com/jamm/memory
そこで、プレフィックス、キーのタグ、およびその他の利点を使用できます。
また、コードを変更せずにキャッシュ ストレージ (APC、memcache、shm-memory) を変更できます (すべてのストレージに対して 1 つのインターフェイス)。

編集:ユーザーのキャッシュ用であるため、問題は解決しません。あなたはそれを遅く言及しました:)

于 2011-05-13T22:44:58.417 に答える