memcache(d) 在 ubuntu 13.10 上不起作用

Posted

技术标签:

【中文标题】memcache(d) 在 ubuntu 13.10 上不起作用【英文标题】:memcache(d) does not work on ubuntu 13.10 【发布时间】:2013-12-22 05:36:22 【问题描述】:

我正在尝试在我的 apache 上使用 memcache。 (Xubuntu 13.10) 我在这里安装了 Apache 2.4、php5、mysql5、php pear 等: https://www.digitalocean.com/community/articles/how-to-install-and-use-memcache-on-ubuntu-12-04

php -m

root@benjamin:~# php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
memcache
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

ps辅助

root@benjamin:~# ps aux | grep memcached
www-data 16113  0.0  0.0 325400   916 ?        Ssl  12:10   0:00 memcached -d -m 128 -l 127.0.0.1 -p 11211 -vv -u www-data
root     16178  0.0  0.0  18008   956 pts/1    S+   12:16   0:00 grep --color=auto memcached

和我使用的示例 php 代码

<?php 
  $memcache = new Memcache;
  $memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1"
  echo "Server's version: " . $memcache->getVersion() . "<br />\n";
  $tmp_object = new stdClass;
  /*
  $tmp_object->str_attr = "test";
  $tmp_object->int_attr = 123;
  $memcache->set("key",$tmp_object,false,50);
  */
  $stat = $memcache->getExtendedStats();
  echo "Store data in the cache (data will expire in 10 seconds)<br />\n";
  echo "<pre>";
  print_r($stat);

   echo "Data from the cache:<br />\n";

  print_r($memcache->get("key"));

?>

问题是,什么都没有发生。完全白页。我怎样才能做到这一点? P.S:我也尝试连接 127.0.0.1 而不是 localhost。

更新,我配置了php.ini,现在可以报错了。

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

Fatal error: Unknown: Failed opening required '/var/www/memcache.php' (include_path='.:/usr/share/php') in Unknown on line 0

【问题讨论】:

我刚刚安装了 memcached 和 php5 模块——它就可以工作了。如果您遇到问题,我的第一个建议是使用“error_reporting(-1);”进行完整的错误报告。在脚本的顶部,至少在调试时。 你好 Alister,我写了 error_reporting(-1);仍然是白页。 我配置了php.ini,现在我可以得到错误。警告:未知:无法打开流:第 0 行未知中的权限被拒绝致命错误:未知:在未知中无法打开所需的“/var/www/memcache.php”(include_path='.:/usr/share/php')在第 0 行 您似乎为 CLI 版本启用了 PHP 模块 memcache,但未为 Apache 启用。创建一个 phpinfo() 页面,查看是否列出。如果没有,请重新启动 Apache 并重试,否则,请确保它已加载到 /etc/php5/apache/* phpinfo(); i.imgur.com/WTi9CIP.png我哪里错了? 【参考方案1】:

Hej 本卡格里,

确保您已安装 php5-memcache,(如果您使用的是 debian,则为 php5-memcached)。

创建一个phpinfo.php文件并写入

<?php
 echo phpinfo();
?>

还有内存缓存,如果你找不到任何东西,你就不得不

sudo a2enmod mem_cache

apache2 中的模块。

重新启动您的 apache 并重试。

帕特里克

【讨论】:

你好 Pattrick,我做到了,它说 php5-memcache 已经安装,现在正在安装 php5-memcached。但是 sudo a2enmod mem_cache 说“错误:模块 mem_cached 不存在!”并尝试了 sudo a2enmod memcache,这个也是一样的。编辑,我还可以在 phpinfo() 上看到 memcache 库; a2enmod 启用 apache 模块 - 而不是 PHP。 我使用了一个从头安装的 debian,安装了 apache2、php5、php5-memchache、php5-memchached 和 memcachedb。之后我从上面尝试了你的脚本,也得到了一个白页。在此之后我 a2enmod mod_cache 并重新启动 apache,然后它为我醒来。它仅更新:与 127.0.0.1 一起使用。

以上是关于memcache(d) 在 ubuntu 13.10 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu 12.04上安装和使用Memcache

ubuntu16.04上 安装xampp的php扩展memcache

ubuntu 搭建php7-memcached和memcache扩展

ubuntu下安装memcached和PHP的memcache扩展

Memcache(d) vs. Varnish 用于加速 3 层 Web 架构

ubuntu源码编译安装memcached和php-memcache 扩展