To prevent losing all of your APC custom user data on an apache restart, use this function along with apc_bin_loadfile to save your APC Memory Data on a restart of apache.
e.g. Write a php script to dump the file and one to re-load the file. Call the dump script directly before stopping apache, and then call the reload script directly after starting apache.
<?php
//saveapc
apc_bin_dumpfile(array(),null,"/path/to/my/file.data");
?>
<?php
//loadapc
apc_bin_loadfile("/path/to/my/file.data");
?>
# wget http://www.example.com/saveapc.php
# /etc/init.d/httpd restart
# wget http://www.example.com/loadapc.php
Particularly useful if you have a custom session handler using APC for storage
Even more handy, update the httpd restart bash script to automatically make these calls for you on a restart
apc_bin_dumpfile
(PECL apc >= 3.1.4)
apc_bin_dumpfile — キャッシュされたファイルやユーザー変数のバイナリダンプをファイルに出力する
説明
$files
, array $user_vars
, string $filename
[, int $flags = 0
[, resource $context
]] )キャッシュされたファイルやユーザー変数のバイナリダンプを APC キャッシュから取得し、指定したファイルに出力します。
パラメータ
-
files -
The file names being dumped.
-
user_vars -
The user variables being dumped.
-
filename -
The filename where the dump is being saved.
-
flags -
Flags passed to the
filenamestream. See the file_put_contents() documentation for details. -
context -
The context passed to the
filenamestream. See the file_put_contents() documentation for details.
返り値
The number of bytes written to the file, otherwise
FALSE if APC is not enabled, filename is an invalid file name,
filename can't be opened, the file dump can't be completed
(e.g., the hard drive is out of disk space), or an unknown error was encountered.
参考
- apc_bin_dump() - 指定したファイルおよびユーザー変数のバイナリダンプを取得する
- apc_bin_load() - バイナリダンプを APC のファイル/ユーザーキャッシュに読み込む
