apc_store 已安装但 return 值不正确
apc_store installed but does not return correct value
我正在尝试使用 apc_store 来存储一个会不断变化的标记变量,因此需要由一个 php 脚本创建,并由另一个 php 脚本访问。
环境:
PHP: 版本 7.3
OS: Ubuntu 18.04
引用如下:
Whosebug: 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).
问题
即使我没有收到错误消息,系统
不会 return 预期结果,例如字符串 "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 启用 apc。
找出加载了哪个 php.ini 文件:
php -i | grep "Loaded Configuration File"
编辑以上文件并添加:
apc.enable_cli=On
然后重试。
问题更新后编辑:
只需将以上行添加到以下文件中:
/etc/php/7.3/cli/conf.d/20-apcu.ini
我正在尝试使用 apc_store 来存储一个会不断变化的标记变量,因此需要由一个 php 脚本创建,并由另一个 php 脚本访问。
环境: PHP: 版本 7.3 OS: Ubuntu 18.04
引用如下:
Whosebug: 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).
问题
即使我没有收到错误消息,系统 不会 return 预期结果,例如字符串 "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 启用 apc。
找出加载了哪个 php.ini 文件:
php -i | grep "Loaded Configuration File"
编辑以上文件并添加:
apc.enable_cli=On
然后重试。
问题更新后编辑:
只需将以上行添加到以下文件中:
/etc/php/7.3/cli/conf.d/20-apcu.ini