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 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu16.04上 安装xampp的php扩展memcache
ubuntu 搭建php7-memcached和memcache扩展
ubuntu下安装memcached和PHP的memcache扩展