apc_store установлен, но не возвращает правильное значение - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь использовать apc_store для хранения переменной токена, которая будет постоянно меняться, поэтому ее необходимо создать одним сценарием php, а доступ к нему - другим сценарием php.


Среда : PHP: версия 7.3 ОС: Ubuntu 18.04

Ниже приведены ссылки:

Stackoverflow: поиск и устранение неисправностей apc_store

PHP Вручную - apc_store


Процедура установки:

sudo apt-get install php-apcu
sudo apt-get install php-apcu-bc

Результат установки:

php-apcu is already the newest version (5.1.18+4.0.11-1+ubuntu18.04.1+deb.sury.org+1).
php-apcu-bc is already the newest version (1.0.5-1+ubuntu18.04.1+deb.sury.org+20191129).

Проблема

Несмотря на то, что я не получаю сообщение об ошибке, система не возвращает ожидаемый результат, например строку «ab c», далее результат указывает «bool (false) ) "которое должно быть" bool (true) ".

Вопрос:

Как мне получить результат для показа?:

string(3) "abc"

Другие тесты Я попытался изменить /etc/php/7.0/mods-available/apcu-ini на

extension=apcu.so
extension=apc.so

..., выдав ошибку:

PHP Warning:  Module 'apc' already loaded in Unknown on line 0

Мой * 108 1 * скрипт:

<?php
$token = "abc";
apc_store('token_1', $token);
var_dump(apc_fetch('token_1'));

Результат:

bool (false)

Ожидаемый результат:

string (3) "ab c"


Устранение неисправностей:

Проверка ap c:

Результат:

$ php -i | grep apc

/etc/php/7.3/cli/conf.d/20-apcu.ini,
/etc/php/7.3/cli/conf.d/25-apcu_bc.ini
apc
apcu
apc.coredump_unmap => Off => Off
apc.enable_cli => Off => Off
apc.enabled => On => On
apc.entries_hint => 4096 => 4096
apc.gc_ttl => 3600 => 3600
apc.mmap_file_mask => no value => no value
apc.preload_path => no value => no value
apc.serializer => php => php
apc.shm_segments => 1 => 1
apc.shm_size => 32M => 32M
apc.slam_defense => Off => Off
apc.smart => 0 => 0
apc.ttl => 0 => 0
apc.use_request_time => On => On

1 Ответ

1 голос
/ 04 февраля 2020

Вам необходимо включить ap c для cli.

Узнать, какой файл php .ini загружен:

php -i | grep "Loaded Configuration File"

Редактировать файл выше и добавьте:

apc.enable_cli=On

И попробуйте еще раз.

Редактировать после обновления вопроса:

Просто добавьте строку выше в следующий файл: /etc/php/7.3/cli/conf.d/20-apcu.ini

...