Nie udało się połączyć z hostem Memcache!

16

Jestem zupełnie nowy do zapamiętania! Pomyślnie zainstalowałem i zacząłem memcached z tym poleceniem na moim hoście A (Ip 192.168.1.102)

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

Dodam również ten wpis do 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

zrestartowałem usługę iptables i nasłuchiwałem portu 11211

działa również telnet!

telnet localhost 11211

Próbuję 127.0.0.1 ... Połączono z hostem lokalnym. Znakiem ucieczki jest „^]”.

Ale łączę się z tym hostem A z hosta B (IP 192.168.1.103) za pomocą tego skryptu 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);
?>

Kiedy przeglądam ten skrypt na serwerze na hoście B (192.168.1.103). Otrzymałem ten błąd

Ostrzeżenie: Memcache :: connect () [memcache.connect]: Nie można połączyć się z 192.168.1.102:11211, Odmowa połączenia (111) w /var/www/memcache_test.php w linii 3 Nie można się połączyć

Powiedz mi, jak rozwiązać ten problem!

billyduc
źródło

Odpowiedzi:

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

Zauważysz, że -l 127.0.0.1w linii poleceń jest „ ”. Mówi to, memcached aby słuchać tylko na interfejsie lo. Jeśli chcesz uzyskać do niego dostęp ze zdalnego komputera, musisz usunąć tę część wiersza polecenia.

David Pashley
źródło
dziękuję bardzo ... Zamieniam 127.0.0.1 na 192.168.1.102 i teraz działa!
billyduc