【发布时间】:2020-05-20 00:38:15
【问题描述】:
我正在尝试使用 apc_store 来存储一个会不断变化的令牌变量,因此需要由一个 php 脚本创建,并由另一个 php 脚本访问。
环境: PHP:版本 7.3 操作系统:Ubuntu 18.04
引用如下:
Stackoverflow: Troubleshooting 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).
问题
即使我没有收到错误消息,系统 不会返回预期结果,例如字符串“abc”, 进一步的结果表明“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
我的 php 脚本:
<?php
$token = "abc";
apc_store('token_1', $token);
var_dump(apc_fetch('token_1'));
结果:
布尔(假)
预期结果:
字符串(3) "abc"
疑难解答:
检查 apc:
结果:
$ 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
【问题讨论】:
-
您是从 CLI 运行它吗?能不能通过http请求试试?
-
@matiit 我正在按照上面提到的“PHP apc_store”中的说明创建一个 php 文件并从终端触发该 php 文件。
-
你能显示
php -i | grep apc的结果吗?我猜你有:apc.enable_cli => Off => Off -
@matiit 我更新了问题。最后你会找到 [php -i | grep apc].
-
@matiit。现在工作。当我将 [var_dump(apc_fetch('token_1))] 拆分到另一个文件时,我确实得到了 boo(false) 但这是一个单独的问题。我将为此注册另一个问题。将继续并批准以下答案。
标签: php variables caching memory php-7.3