ロゴ メインコンテンツへ
RSSフィード
「Web 開発」に関連する記事一覧

突然PHPの変更が反映されなくなった

2023/07/17
(この記事の文字数: 758)
PHP 

サーバーにアップロードしたPHPの更新が反映されないことがしばしば起こるようになりました。数年間まったく問題なかったのにある日突然反映されないことが起き始めました。症状としては、ちょっとしたログの追加や分岐の追加のような小さい変更だと反映されず、構造が変化するような大きな変更を入れると反映されるといった感じです。

結論としては、opcache が原因のようでした。ひとまず、以下を php ファイルに設定したところ反映されるようになりました。

ini_set('opcache.enable', 0);

しかし、サーバー側の php.ini には特に opcache に関する設定の記載がありませんでした。opacache.enable はデフォルトで有効であるため、今までも有効だったはず。もしかしたら、キャッシュ無効化判定ロジックが変わったことにより、変更内容によってはキャッシュが無効化されなくなってしまったのかもしれません。

ちょうどサーバー側のPHPバージョンが7から8にアップグレードした時からこの症状が発生したような気がします。PHP8以降は opcache.jit というJITコンパイル設定が追加されています。

PHPのJITについては以下のページが分かりやすかったです。
https://qiita.com/taisei_otsuka/items/aa8a1cbac8e05a86e233

もしかしたら、これがキャッシュ無効の判定ロジックに影響している可能性があります。試していませんが、opcache.jit の値を変更すれば(もしくは無効化すれば)、opcache.enable が 1 であっても反映されるようになるかもしれません。

ひとまず、PHP の変更が反映されないときは、opcache を疑ってみるといいということを学びました。


  このエントリーをはてなブックマークに追加  

<<「Web 開発」の記事一覧に戻る

コメント(0 件)



コンテンツロード: 0.0067 sec
Copyright(C)2006-2024 puarts All Rights Reserved