web-dev-qa-db-ja.com

BOA Aegir Octopus、APCが無効:モジュールのphpファイルがキャッシュされているようで、変更が反映されていません。どうして?

VPSにBOAをインストールしましたが、モジュールのphpファイルを変更しても、その変更がWebサイトに反映されないという事実を除けば、すべて問題ないようです。

Drupalのindex.phpで何かを変更すると、変更を確認できます。

私の最初の考えは、テストのためにphp.iniでグローバルに無効にしたAPCでしたが、それは役に立ちませんでした。

正しいディレクトリで作業していることとdrupalセットアップ)を再確認しましたが、ファイルが呼び出されていないようです。

明らかに私は何かが欠けていて、グーグルでさえこれを明らかにしなかった。

これが何であるか知っていますか?

1
witti

数時間後、私はそれを手に入れました。

おかしなことに、Apc、Redis、またはdrupal cache :)とは何の関係もありませんでした。

なんらかの理由で移行したサイトでは、1つのモジュール内に使用されていない複数のモジュールのコピーがありました。少し前に機能モジュールをいじってみましたが、これが理由かもしれません。

サイトをインポートすると、Aegirは明らかにモジュールのディレクトリを探し、その追加の場所で私のモジュールの1つを見つけて、システムテーブルに保存しました。

したがって、drupalモジュールはそこにあると考え、「実際の」モジュールバージョンと呼ばれることはありませんでした。

drupal_get_filename を呼び出すことでこれを見つけました。これは次のような奇妙なパスを返しました。
"sites/all/modules/vocabindex/ppp/mymodule"
そして元のサイトを調べてみると、そこに約15のモジュールがあることに驚きました。

モジュールを使用しなくなったため、最終的にはvocabindexディレクトリ全体を削除するだけで、すべてが正常に見えます。わーい!

多分これは誰かをある時点で多くの時間を節約するでしょう。

助けてくれたCliveとGraceに感謝します!
マーティン

0
witti

この場合、Drupalキャッシュをクリアするだけでは不十分な場合があります。

Redisはデフォルトでアクティブであるため、一部のインクルードパスがキャッシュされているか、システムテーブルに古いパスが残っている可能性があるため、「レジストリの再構築」タスクに続いて「すべてのキャッシュをフラッシュ」タスクを実行する必要があります(2番目コマンドラインでdrush cc allを実行するのと同じです)。

それでも問題が解決しない場合は、最新のBOA-2.0.6-dev(ヘッド)にアップグレードしてください。これには、これを回避するための最新のAPC 3.1.14バージョンが含まれています 既知のAPCバグ

1
Grace