PHP OPcacheのキャッシュをクリアには?

PHP OPcacheのキャッシュする

NextCloudを利用していますが、管理画面にログインにすると「OPcache のインターン化文字列バッファがほぼいっぱいです。」と表示されます。「opcache.interned_strings_buffer」の値を大きく設定しても警告メッセージが表示されます。

設定で対応してもしばらくすると、同様のメッセージが表示されるのでOPcacheのキャッシュを手動でクリアーする方法を確認しました

opcache_reset()関数を使用する

PHPスクリプト内でキャッシュをクリアするには、opcache_reset()関数を使用する

1.下記のようなPHPスクリプトを作成します。

<?php
if (function_exists('opcache_reset')) {
    opcache_reset();
    echo "OPcache cleared successfully.";
} else {
    echo "OPcache is not enabled.";
}
?>

2.作成したスクリプトをWebサーバー上で実行するか、phpコマンドで実行する上記の

# 該当プログラムをWEBサーバーに配置して、webブラウザでアクセスする
URL:http://your-server/clear_opcache.php

#  該当プログラムを保存して、phpコマンドで実行
$ php /home/admin/clear_opcache.php

PHP-FPMを再起動する

OPcacheのキャッシュはPHPプロセスのライフサイクルに依存するため、PHP-FPMを再起動するとキャッシュがクリアされます。

# PHP-FPMを再起動すれば、OPcacheのキャッシュはクリアされます
$ sudo systemctl restart php-fpm

 

スポンサーリンク

0
0