Php

無法在 Gentoo 上的 PHP 中載入 Memcached

  • January 6, 2012

我正在使用 Gentoo 基本系統版本 2.0.3、apache-2.2.21-r1、php 5.3.8-pl0 和 memcached-1.4.5。我做了以下事情:

emerge dev-php/pecl-memcache   
emerge dev-php/pecl-memcached  
emerge dev-libs/libmemcache  
emerge dev-libs/libmemcached   

一切安裝就好了。我已經啟動了 memcached,可以在埠上 telnet 並執行 stats 命令。當然,我沒有忘記重啟 apache

現在,對於 PHP 部分:

ls -lh /etc/php/apache2-php5.3/ext-active/  
lrwxrwxrwx 1 root root 41 Jan  6 09:58 memcached.ini -> /etc/php/apache2-php5.3/ext/memcached.ini  
lrwxrwxrwx 1 root root 40 Jan  6 09:48 memcache.ini -> /etc/php/apache2-php5.3/ext/memcache.ini

分別包含extension=memcache.soextension=memcached.so

php -i|grep memcache  
Additional .ini files parsed => /etc/php/cli-php5.3/ext-active/memcache.ini,
/etc/php/cli-php5.3/ext-active/memcached.ini  
memcache  
memcache support => enabled  
memcache.allow_failover => 1 => 1  
memcache.chunk_size => 32768 => 32768  
memcache.compress_threshold => 20000 => 20000  
memcache.default_port => 11211 => 11211  
memcache.hash_function => crc32 => crc32  
memcache.hash_strategy => consistent => consistent  
memcache.lock_timeout => 15 => 15  
memcache.max_failover_attempts => 20 => 20  
memcache.protocol => ascii => ascii  
memcache.redundancy => 1 => 1  
memcache.session_redundancy => 2 => 2  
memcached  
memcached support => enabled  
libmemcached version => 0.39  
Registered save handlers => files user memcache memcached

php -m | grep -i memcache  
memcache  
memcached

所以一切都指向這樣一個事實,即 memcache 和 memcached 模組是在 PHP 中載入的,但是如果我使用 a<?php phpinfo() ?>它不會顯示任何載入的模組,它只會顯示: 這兩個值表示本地值和主值。另外,如果我為 memcached 執行測試程式碼,如下所示:

`Additional .ini files parsed /etc/php/apache2-php5.3/ext-active/memcache.ini, /etc/php/apache2-php5.3/ext-active/memcached.ini

session.save_handler memcache memcache

session.save_path tcp://localhost:11211 tcp://localhost:11211`

<?php
$memcache = new Memcache;  
$memcache->connect('localhost', 11211) or die ("Connexion impossible");  
$version = $memcache->getVersion();  
echo 'Version: '.$version;  
$memcache->set('key', 'koreus', false, 10) or die ("Echec de la sauvegarde des donné sur le serveur");  
echo "Les donné ont é stocké dans le cache (les donné expireront dans 10 secondes)";   
$get_result = $memcache->get('key');  
echo 'Donné depuis le cache : '. $get_result;  
?>

我收到以下錯誤消息: 致命錯誤:第 2 行的 /var/www/test/mem.php 中未找到 Class ‘Memcache’

對此有什麼想法嗎?我是 Gentoo 的新手,沒有發現任何與在其上配置 memcached+php 相關的特殊內容。

謝謝。

您目前的情況是 memcache 和 memcached 已在命令行中正確載入,/etc/php/cli-php5.3/ext-active/但Apache/etc/php/apache2-php5.3/ext-active/從.

假設這些文件的 CLI 版本與 Apache 版本完全相同,可能值得檢查/etc/php/apache2-php5.3/php.ini以確保它正確地包含擴展目錄中的文件。

在和下的所有內容上執行diffs 。/etc/php/cli-php5.3/``/etc/php/apache2-php5.3/

引用自:https://serverfault.com/questions/347255