2014-07-04 53 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

現在這符合您的要求,但這只是一個樣本 –

相關問題