我对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的这个主机A(IP 192.168.1.103)
<?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行无法连接
请告诉我如何解决这个问题!
# memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211
你会注意到你的命令行中有“-l 127.0.0.1”。 这告诉memcached只能在lo界面上侦听。 如果你想从远程机器访问它,你需要删除这部分命令行。