php-apcu (CGI/FastCGI) apc_fetch всегда возвращает false
При использовании расширения php-apcu ( https://github.com/krakjoe/apcu) (не apc) в среде php CGI сохраняются данные изapc_store
пусты
У кого-нибудь есть опыт, как решить эту проблему?
Пример PHP-файла: test-apc.php
<?php
$k = 'test';
if(isset($_GET['get'])) {
$result = apc_fetch($k);
echo "Read entry '$k': $result";
} else if(isset($_GET['clear'])) {
echo "Clear entry '$k'";
apc_clear_cache('user');
} else {
apc_store($k, "HelloWord");
echo "Write entry '$k' set";
}
print_r(apc_cache_info('user'));
?>
Действия по воспроизведению:
- открыто
http://server/test-apc.php
звонитьapc_store
- открыто
http://server/test-apc.php?get
получать сохраненные данные, используяapc_fetch
Кстати: apc_cache_info ('user') показывает это правильно с первым запросом, второй пуст
Соответствующие пакеты (ОС: Debian 3.2.63):
- Apache 2.2.22 (mpm-prefork, suexec-custom, оболочка)
- php5.5 как CGI
- php5-apcu 4.0.7
- (и зависимости)
1 ответ
Модуль php-apcu не полностью совместим с CGI/fcgid.
Возможная причина: CGI / fcgid выполняет интерпретатор php как новый экземпляр при каждом запросе HTTP. Таким образом, apcu / apc не может восстановить пользовательские кеши.
Модуль mod-fastcgi (несвободный пакет для Debian) вместе с php5-fpm может помочь. Он использует другую технику для управления процессами.
http://php-fpm.org/wiki/ (внизу - 2015-09-02)