我对 memcached 完全陌生!我已成功在主机 A(IP 192.168.1.102)上使用此命令安装并启动了 memcached
memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211
我还将这些条目添加到 iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 11211 -j ACCEPT
重新启动 iptables 服务并监听端口 11211
telnet 也有效!
telnet localhost 11211
尝试 127.0.0.1... 连接到本地主机。转义字符为“^]”。
但是我使用此脚本 memcached_test.php 从主机 B(IP 192.168.1.103)连接到该主机 A
<?php
$memcache = new Memcache;
$memcache->connect('192.168.1.102', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
当我在主机 B(192.168.1.103)上的服务器上浏览此脚本时,我收到了此错误
警告:Memcache::connect() [memcache.connect]: 无法连接到 192.168.1.102:11211,连接被拒绝(111)位于 /var/www/memcache_test.php 第 3 行无法连接
请告诉我如何解决这个问题!
答案1
# memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211
-l 127.0.0.1
您会注意到命令行中有“ ”。这说明 memcached
只监听 lo 接口。如果要从远程机器访问它,则需要删除命令行的这一部分。