ไม่สามารถเชื่อมต่อกับโฮสต์ memcache ได้!


16

ฉันใหม่ทั้งหมดเพื่อ memcached! ฉันติดตั้งสำเร็จแล้วและเริ่ม memcached ด้วยคำสั่งนี้ในโฮสต์ A (Ip 192.168.1.102)

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 ... เชื่อมต่อกับ localhost ตัวละคร Escape คือ '^]'

แต่ฉันเชื่อมต่อกับโฮสต์นี้จาก Host B (IP 192.168.1.103) ด้วยสคริปต์นี้ memcached_test.php

<?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 ไม่สามารถเชื่อมต่อ

กรุณาบอกวิธีแก้ปัญหานี้!

คำตอบ:


15
# memcached -u memcached -d -m 30 -l 127.0.0.1 -p 11211

คุณจะสังเกตเห็นว่ามี " -l 127.0.0.1" ในบรรทัดคำสั่งของคุณ สิ่งนี้บอก memcachedให้ฟังเฉพาะบนอินเตอร์เฟสอินเตอร์เฟส หากคุณต้องการเข้าถึงจากเครื่องระยะไกลคุณจะต้องลบส่วนนี้ของบรรทัดคำสั่ง


ขอบคุณมาก ... ฉันแทนที่ 127.0.0.1 ด้วย 192.168.1.102 และตอนนี้มันใช้งานได้!
billyduc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.