内容へ移動
あちあち情報局
趣味や日曜プログラムなどを書いています
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
トップページ
»
PHPの変更が反映されない場合
php_chche
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
{{tag>プログラミング関連 PHP}} [[start]]>[[programming_start]] ====== PHPの変更が反映されない場合 ====== PHPソースを変更してもブラウザに表示される情報は古いままで更新されない事があります。ブラウザキャッシュを初期化しても変更されない場合は php.ini の opcache.revalidate_freq を確認します。 opcache.revalidate_freq は PHPコードをメモリにキャッシュするOPcacheの設定の一つで、phpファイルの更新時間をチェックする間隔です。 推奨値は 60 となっていますが、テスト環境などで頻繁に更新する場合は低い値にしないとキャッシュが使用され古いphpソースが利用されてしまいます。 ----- ===== 確認方法 ===== opcache.revalidate_freq の確認方法はphp.iniを開くか、phpを直接開けない場合は phpinfo を使って調べます。(phpinfoが禁止されている場合もあります) <file php phpinfo.php> <html> <head> <title>phpinfo</title> </head> <body> <?php phpinfo(); ?> </body> </html> </file> {{:media:20180418_phpinfo.png?300|}} ---- ===== 変更方法 ===== 5つの方法で変更できます、先頭の3つはサーバー側が許可してなければできません ==== php.ini による変更 ==== php.ini を開き opcache.revalidate_freqを探して値を変更します。注意点はWebサイト全体に反映されるのでディレクトリ単位で制御したい場合は使用できません。 <code> opcache.revalidate_freq = 60 ↓ opcache.revalidate_freq = 1 </code> ==== .user.ini による使用 ==== (未検証)ディレクトリの .user.ini を開き opcache.revalidate_freq の値を変更します。(ファイルやキーが無ければ新規作成)、注意点はモジュール版では動作しません、また.user.iniの更新間隔は5分単位なので初期設定を間違えると5分間反映されません。 <file .user.ini> opcache.revalidate_freq = 1 </file> ==== .htaccessn による変更 ==== ディレクトリの.htaccess を開き opcache.revalidate_freq の設定を追加または変更します。注意点はWebサーバーがApachの以外の場合は.htaccessをサポートしていない場合があります。 .htaccessの最後に下記を追加 <code> <Files *.php> php_value opcache.revalidate_freq "1" </Files> </code> ==== opcache_reset()関数による変更 ==== phpコード中で opcache_reset()関数を使用すると全てのOPcacheを削除します。注意点は初回実行時はキャッシュから読み込まれているので2回目以降から有効になります。またphpファイル別にキャッシュを削除したい場合はopcache_invalidate()を使用します <code php> <?php opcache_reset(); ?> </code> ==== opcache_invalidate()関数による変更 ==== phpコード中でopcache_invalidate()関数を使用すると任意のphpファイルのキャッシュを削除できます。注意点は初回実行時はキャッシュから読み込まれているので2回目以降から有効になります。 使い方 <code> opcache_invalidate('パスとファイル名'); opcache_invalidate('パスとファイル名',TRUE); </code> TRUEが無い場合はタイムスタンプが新しい場合にのみキャッシュを削除します。TRUEがある場合は必ずキャッシュを削除します。 <code php> <?php opcache_reset('./lib/sample.php',TRUE); ?> </code> ---- [[start]]>[[programming_start]]
php_chche.txt
· 最終更新: 2018/05/14 21:47 by
管理者
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ