PHP、Memcached 从命令行运行,但不能从 Web 运行

标签 php apache memcached

我在 Centos 6.4 上安装了带有 memcached.so 扩展的 PHP 5.3.3,httpd 运行的版本是 2.2.15-26。这是我的 index.php:

$mc = new \Memcached();
$mc->addServer('127.0.0.1', 11211);
$mc->set("test", "blah");
var_dump($mc->getResultCode());
var_dump($mc->getResultMessage());
var_dump($mc->get("test"));
die;

当我从命令行运行它时,它有效。我得到以下信息:

10:22:33 $ php index.php
int(0)
string(7) "SUCCESS"
string(4) "blah"

memcache 服务器也可以通过 telnet 工作。但是,当我从网络运行 index.php 时,它失败了。我得到以下信息(来自查看网页源代码):

int(47)
string(51) "SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY"
bool(false)

没有重新安装我的操作系统并尝试不同版本的废话,任何人都可以解释可能导致此问题的原因吗?

最佳答案

它是 SELinux 问题吗? Cli 可以访问 Memcached 但守护进程没有。试试这个:

  • getenforce 了解您是否启用了 SELinux
  • setenforce 0 禁用它
  • 重启
  • 重试你的测试

如果是好的,您必须配置 Apache 以访问 Memcached。

关于PHP、Memcached 从命令行运行,但不能从 Web 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159415/

相关文章:

php - 如何防止用户下载或保存图像?

apache - 有没有办法正确地试验 Solr 字段类型?

c++ - Memcached 是还是不是? (c++)

python - 使用 Django 进行站点范围的缓存 - 注销时密码保护页面的问题

docker - Kubernetes:获取网络上其他 Pod 的 IP 地址

php - 替代 if(preg_match() 和 preg_match())

php - 带有 stof 可上传扩展名的 Symfony2 上传文件

PHP PDO 自定义类返回一个对象而不是它应该返回的对象

linux - 如何在同一台服务器上混合使用基于 IP 和名称的虚拟主机?

django - wsgi.py 无法作为 Python 模块加载错误/没有名为 'django.core' 的模块