memcache 호스트에 연결하지 못했습니다!


16

나는 memcached에 완전히 새로운 사람입니다! 호스트 A에서이 명령으로 memcached를 성공적으로 설치하고 시작했습니다 (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 localhost 11211

127.0.0.1 시도 중 ... localhost에 연결되었습니다. 이스케이프 문자는 '^]'입니다.

그러나이 스크립트 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에 연결할 수 없습니다. 3 행의 /var/www/memcache_test.php에서 연결이 거부되었습니다 (111).

이 문제를 해결하는 방법을 알려주십시오!

답변:


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

-l 127.0.0.1명령 행에 " " 가있는 것을 볼 수 있습니다 . 이것은 memcached lo 인터페이스에서만 들으 라고 지시 합니다. 원격 시스템에서 액세스하려면 명령 행의이 부분을 제거해야합니다.


정말 감사합니다 ... 127.0.0.1을 192.168.1.102로 바꾸면 이제 작동합니다!
billyduc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.