Memcached 无法在 PHP 文件中运行,但在 SSH 中运行 - CentOS

Memcached 无法在 PHP 文件中运行,但在 SSH 中运行 - CentOS

在我的 CentOS 7 上,Memcached 正在运行并在 SSH 上工作,但在 PHP 文件中不起作用。我遵循了这篇文章:https://www.mynotepaper.com/install-memcached-on-centos-7。此方法在我之前的服务器上运行良好。

我已经使用 telnet 测试了 Memcached。它运行良好。

$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set test 0 100 5
Hello
STORED
get test
VALUE test 0 5
Hello
END

使用 telnet 存储数据后,我通过 PHP 命令在 SSH 上进行了测试。它也能正常工作:

php -r '$c = new Memcached(); $c->addServer("127.0.0.1", 11211); var_dump( $c->getAllKeys() );'
array(1) {
  [0]=>
  string(4) "test"
}

但在 PHP 文件中,它不起作用。PHP 代码:

<?php
$c = new Memcached();
$c->addServer("127.0.0.1", 11211);
var_dump( $c->getAllKeys() );
?>

它总是显示bool(false)。这是我的PHP 信息的屏幕截图

你能告诉我我的错误是什么吗?

答案1

为了允许 httpd 集成的 PHP 模块在强制 SELinux 环境中进行网络访问(即使是环回网络),您必须在服务器上执行以下操作(以 root 身份或使用 sudo):

setsebool -P httpd_can_network_connect on

Centos Wiki 上的布尔值和信息列表: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

相关内容