Cache

Memcached 不在 PHP 文件中工作,但在 SSH 上工作 - CentOS

  • February 7, 2020

在我的 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 資訊截圖

你能告訴我我的錯誤是什麼嗎?

要允許 httpd 集成 PHP 模組在強制執行的 SELinux 環境中進行網路訪問(即使它是環回網路),您必須在您的伺服器上執行(作為 root 或使用 sudo):

setsebool -P httpd_can_network_connect on

Centos Wiki 上的布爾值和資訊列表: https ://wiki.centos.org/TipsAndTricks/SelinuxBooleans

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