2014-07-04 50 views
1

我想使用APCu,我最近重新安装了所有东西,但好像APCu不工作。APCu不能在网络服务器上工作

我使用下面的脚本来测试它是否可以写入缓存:

<?php 
    // Simple Person class 
    class Person { 
     private $name; 
     private $age; 

     public function setName($name) { 
      $this->name = $name; 
     } 

     public function setAge($age) { 
      $this->age = $age; 
     } 

     public function getName() { 
      return $this->name; 
     } 

     public function getAge() { 
      return $this->age; 
     } 
    } 

    // Check if Person object found from cache 
    if ($obj = apc_fetch('person')) { 
     echo "Person data from cache: ", "<br />"; 
     echo "Name: ", $obj->getName(), "<br />"; 
     echo "Age: ", $obj->getAge(), "<br />"; 
    } 
    else { 
     echo 'Person data not found from cache...saving', "<br />"; 
     $obj = new Person; 
     $obj->setName('Test Person'); 
     $obj->setAge(35); 
     apc_add('person', $obj, 3600); 
    } 
?> 

运行这并没有给我任何错误,但它alwasy说:“找不到人数据......”,这暗示着缓存不能像预期的那样工作。

在我的php.ini我有这样配置的:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20100525" 
extension=apcu.so 

[apcu] 

apc.enabled = 1 
apc.shm_size=1024M 
apc.max_file_size=10M 
apc.num_files_hint=20000 
apc.user_entries_hint=20000 

我已经重新编译的一切,但仍然没有运气。

我正在运行最新的cpanel版本。而phpinfo()也表示apcu已安装,我正在CentOS上运行。

回答

2

这对我来说做工精细让我们尝试

<?php 
// Simple Person class 
class Person { 
    private $name; 
    private $age; 

    public function setName($name) { 
     $this->name = $name; 
    } 

    public function setAge($age) { 
     $this->age = $age; 
    } 

    public function getName() { 
     return $this->name; 
    } 

    public function getAge() { 
     return $this->age; 
    } 
} 

// Check if Person object found from cache 
$obj = new Person; 
    if (apc_fetch('person')) { 
     $obj = apc_fetch('person'); 
     echo "Person data from cache: ", "<br />"; 
     echo "Name: ", $obj->getName(), "<br />"; 
     echo "Age: ", $obj->getAge(), "<br />"; 
    } 
    else { 
     echo 'Person data not found from cache...saving', "<br />"; 
     $obj->setName('Test Person'); 
     $obj->setAge(35); 
     apc_add('person', $obj); 
    } 
?> 
+0

我已经尝试过脚本的多个变体没有成功。 –

+0

它说,来自缓存的个人数据,名称:但它不显示名称,甚至不会在年龄开始。此外APCu信息仍然显示没有任何被缓存(0请求/秒) –

+0

现在这符合您的要求,但这只是一个样本 –

相关问题